home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / answers / comp / linux / howto / networking < prev    next >
Internet Message Format  |  1994-03-15  |  90KB

  1. Path: bloom-beacon.mit.edu!hookup!swrinde!emory!news-feed-2.peachnet.edu!concert!bigblue.oit.unc.edu!sunSITE!mdw
  2. From: terryd@extro.ucc.su.oz.au (Terry Dawson)
  3. Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,news.answers,comp.answers
  4. Subject: Linux NET-2 HOWTO
  5. Followup-To: poster
  6. Date: 16 Mar 1994 05:27:32 GMT
  7. Organization: The University of North Carolina at Chapel Hill
  8. Lines: 2148
  9. Approved: linux-announce@tc.cornell.edu (Matt Welsh)
  10. Message-ID: <2m65c4$e16@bigblue.oit.unc.edu>
  11. NNTP-Posting-Host: calzone.oit.unc.edu
  12. Summary: HOWTO configure TCP/IP networking, SLIP, PLIP, and PPP under Linux.
  13. Keywords: Linux, Networking, TCP/IP, NET-2, SLIP
  14. Originator: mdw@sunSITE
  15. Xref: bloom-beacon.mit.edu comp.os.linux.announce:1954 comp.os.linux.help:26197 comp.os.linux.admin:5615 news.answers:16453 comp.answers:4184
  16.  
  17. Archive-name: linux/howto/networking
  18. Last-modified: 21 Feb 94
  19.  
  20.     This is the Linux NET-2 HOWTO (previously known as the NET-2-FAQ).     
  21.     This document explains how to configure TCP/IP and SLIP with the new 
  22.     ``NET-2'' networking code in Linux kernels 0.99.pl10 and above. 
  23.     Please mail me if you have questions or comments. --terryd
  24.  
  25. This is the Linux NET-2 HOWTO v1.11, 26 January 1994
  26. By Terry Dawson <terryd@extro.ucc.su.oz.au> and 
  27.    Matt Welsh <mdw@sunsite.unc.edu> 
  28.  
  29. (c)1994 by Terry Dawson, Matt Welsh
  30.  
  31. CHANGES from previous version:
  32.     Added the NFS questions and answers that Alan posted, thanks Alan.
  33.     Added dynamic slip server script - thanks Paul Mossip!
  34.     Added dip-i source, thanks Karl, kkeyte@esoc.bitnet
  35.     Added copyright message. Ack.
  36.  
  37. *** FTP site maintainers: This document should be stored in the docs/HOWTO
  38. *** directory on your Linux archive as ``NET-2-HOWTO''. You may also wish
  39. *** to link this file to ``NET-2-FAQ'' (its previous name). This document
  40. *** also supercedes the old Linux NET-FAQ.
  41.  
  42. 'Real Programmers don't write documentation.' -- Ancient Proverb
  43.  
  44. INDEX for this version
  45.  
  46.     To search for a particular section, search for '^N.S' where
  47.     N is the section, and S is the Subsection.
  48.  
  49.     0.    Introduction.
  50.     0.1    Disclaimer.
  51.     0.2    Questions already ?
  52.     0.3    Related documentation.
  53.     0.4    New versions of this document.
  54.     0.5    Feedback.
  55.     1.    NET-2 Supported Functionality.
  56.     1.1    Supported Ethernet cards.
  57.     2.    Getting the NET-2 Software.
  58.     2.1    Unpacking the software.
  59.     2.2    Putting things in the right place.
  60.     2.3    Creating the device interfaces.
  61.     3.    Building the Kernel.
  62.     3.1    Configuring the NET-2 kernel code.
  63.     3.2    Building the kernel.
  64.     4.    Configuring NET-2 TCP/IP.
  65.     4.1    Before you begin.
  66.     4.2    /etc/rc.d/rc.inet1 and /etc/rc.d/rc.inet2
  67.     4.2.1    Editing rc.inet1
  68.     4.2.2    Editing rc.inet2
  69.     4.2.2.1    "To named or not to named... that is the question."
  70.     4.3    /etc/hosts
  71.     4.3.1    Important note regarding /etc/hosts from NET-032.
  72.     4.4    /etc/networks
  73.     4.5    /etc/host.conf
  74.     4.6    /etc/resolv.conf
  75.     4.7    /etc/HOSTNAME
  76.     4.8    /etc/rc.local
  77.     4.9    Other files.
  78.     5.    Configuring SLIP.
  79.     5.1    Static SLIP server connections using a dialup line.
  80.     5.2    Static SLIP server connections using a leased line or cable.
  81.     5.3    Dynamic SLIP server connections using a dialup line.
  82.     5.4    Using DIP.
  83.     5.5    Configuring your Linux Machine as a SLIP Server.
  84.     5.6    /etc/net/diphosts
  85.     5.7    Configuring PLIP interfaces.
  86.     5.7.1    PLIP Cabling Diagram.
  87.     6.    PPP (Under construction).
  88.     7.    AX.25 (Under construction).
  89.     8.    Are You Stuck ?
  90.     9.    Common Problems and Solutions.
  91.     9.1    Not so common problems and solutions (Mostly NFS).
  92.     10.    Known bugs.
  93.     11.    Copyright Message. (We're not ogres, nor are we silly).
  94.     12.    Miscellaneous.
  95.     13.    Change History.
  96.  
  97. ------------------------------------------------------------------------------
  98. 0.    Introduction.
  99.  
  100.     This is the NET-2 HOWTO, which is a rewrite of the earlier NET-FAQ for
  101.     the new NET-2 TCP/IP code in Linux kernels 0.99.pl10 and above. 
  102.  
  103.     The NET-2 code is the new kernel-based networking support for Linux,
  104.     written by Fred van Kempen <waltje@uwalt.nl.mugnet.org>. It is based 
  105.     on the NET-1 code by Ross Biro <bir7@leland.stanford.edu>, ethernet 
  106.     drivers by Donald Becker <becker@super.org>, SLIP drivers by 
  107.     Laurence Culhane <loz@holmes.demon.co.uk>, and the D-Link driver by
  108.     Bj0rn Ekwall <bj0rn@blox.se>. The NET-2debugged code is maintained
  109.     by Alan Cox <iiitac@pyr.swan.ac.uk>. Many others too numerous to
  110.     mention have provided support, bug fixes, and help. 
  111.  
  112.     This NET-2 HOWTO is by Terry Dawson and Matt Welsh. It covers setup 
  113.     and configuration of TCP/IP under Linux using NET-2. It also hopefully 
  114.     answers some of the many questions about the NET-2 code and common
  115.     problems that people have. It does not cover using TCP/IP (i.e.
  116.     using telnet, FTP, etc.), other documents are available which will
  117.     describe these much better than I am able to.
  118.  
  119. 0.1    Disclaimer.
  120.  
  121.     The NET-2 code is under development, which means that it may 
  122.     not be as stable and easy to configure as you may like it to be.
  123.     code is relatively new and bug fixes are being posted every day, so if 
  124.     you run into a large number of problems just hang in there. The 
  125.     software is in two stages of development at the moment. The version
  126.     currently supplied in the standard kernel distribution is version
  127.     NET-2D(ebugged), and is being progressively debugged and made more
  128.     stable by Alan Cox, until NET-2E, which is currently undergoing Beta
  129.     testing, is ready for general release.
  130.  
  131.     We do not, and cannot know everything there is to know about the
  132.     Linux networking code. Please accept that this document may, and
  133.     probably does contain errors. Please read any README files that
  134.     are bundled with any of the various pieces of software described
  135.     in this document for more detailed and accurate information. We
  136.     will attempt to keep this document as error free as possible.
  137.  
  138.     NOTE: In this document, 'NET-2' does not refer to the Berkeley
  139.     Software Distribution NET-2 release of BSD UNIX. Yes, the names
  140.     are conflicting. In this HOWTO, 'NET-2' refers only to the new
  141.     generation of TCP/IP code in the Linux kernel.
  142.  
  143. 0.2    Questions already ?
  144.  
  145.     'The only stupid question is the unasked one.' - One of my own Motto's
  146.  
  147.     If you have general configuration questions, and you have been unable
  148.     to find the answers after reading the other various HOWTO and FAQ
  149.     files,    then you would be best served to post them comp.os.linux.help,
  150.     or, if you believe it to be specifically related the NET-2 kernel
  151.     code, then you could post it to the NET mailing list. Please include
  152.     as much relevant information as possible, there is nothing more
  153.     annoying than to have a bug or problem reported without sufficient
  154.     information to even begin searching for it.
  155.  
  156.     Version numbers and revisons of code, a detailed account of the
  157.     problem, and the circumstances that caused it to happen are essential.
  158.     Traces and debug messages where available should also be considered
  159.     mandatory.
  160.  
  161.     If you have a question relating to the configuration of, or problems
  162.     experienced with, _any_ linux distribution, regardless of
  163.     whether it be SLS, Slackware, Yggadsril, TAMU, MCC, Pro, or other,
  164.     please contact the people who created the distribution for support
  165.     before attempting to report it to the list or the NET-2 developers
  166.     directly. The developers of the NET-2 code _cannot_ and _will not_
  167.     offer support for NET-2 as distributed in any form, other than as
  168.     specified in this document, or as per distributed Alpha/Beta test
  169.     instructions.
  170.  
  171.     Please do NOT bug the NET-2 developers directly unless you have a
  172.     _development_-related issue (especially Fred: he has to pay $$$ for
  173.     his e-mail access).
  174.  
  175.         To join the NET channel of the Linux-activists mailing list
  176.         send mail to
  177.                 linux-activists-request@niksula.hut.fi
  178.         with the line
  179.                 X-Mn-Admin: join NET
  180.         at the top of the message body (not the subject).
  181.  
  182.     Note that the SLIP channel of the mailing list has been disabled and
  183.     the NET channel should be used for SLIP discussions as well.
  184.     Remember, keep in mind that the NET channel is for development
  185.     discussions only.
  186.  
  187.     Note also that a PPP list has been established. To join it, use the
  188.     same procedure as for joining the NET list, except specify PPP in
  189.     place of NET.
  190.  
  191.  
  192. 0.3    Related documentation.
  193.  
  194.     There is now a book from the Linux Documentation Project entitled
  195.     `Linux Network Administration Guide' by Olaf Kirch. It covers all
  196.     aspects of setting up and using networking under Linux, including
  197.     TCP/IP, NFS, UUCP, mail, news, etc.
  198.  
  199.     This book supplements the NET-2 HOWTO  and covers all of the
  200.     other aspects of using TCP/IP. This guide simply covers setup of 
  201.     NET-2, i.e., "How to put your machine on the net". If you are new
  202.     to unix networking, then I strongly urge you to obtain a copy and
  203.     read it first. It will answer a lot of questions for you that are
  204.     not within the scope of this document.
  205.  
  206.     The current version is available in:
  207.  
  208.     sunsite.unc.edu:/pub/Linux/docs/linux-doc-project/network-guide
  209.  
  210.     There are various versions of the file available. The most common
  211.     formats are supported, being plain ascii, Postscript, DVI, Latex
  212.     and groff.
  213.  
  214.     The Linux Network Administrators Guide is Copyright (c) by Olaf Kirch.
  215.  
  216.     You should read the Ethernet HOWTO (from sunsite.unc.edu:
  217.     /pub/Linux/docs/HOWTO) if you are using an Ethernet network
  218.     with NET-2. The Ethernet HOWTO explains all of the ins and outs
  219.     of using and configuring Ethernet devices for Linux, and should
  220.     be considered the definitive source of information relating to same.
  221.     That is, if the Ethernet HOWTO and this HOWTO differ, then believe
  222.     the Ethernet HOWTO.
  223.  
  224.     This NET-2 HOWTO supercedes the earlier 'Linux NET-FAQ' by Phil
  225.     Copeland and Matt Welsh. The NET-FAQ is for Linux kernels previous
  226.     to 0.99.pl10, running the older version of the TCP/IP code.
  227.  
  228.     This document used to be called the NET-2-FAQ, before the Linux HOWTO
  229.     project was underway. Thus, the NET-2-FAQ and the NET-2 HOWTO are
  230.     the same.
  231.  
  232. 0.4    New versions of this document.
  233.  
  234.     New versions of this document can be retrieved via anonymous
  235.     FTP from sunsite.unc.edu:/pub/Linux/docs/HOWTO/NET-2-HOWTO
  236.     or directly from me (terryd@extro.ucc.su.oz.au). It will also be
  237.     posted to the newsgroups comp.os.linux.announce, comp.os.linux.help,
  238.     and news.answers periodically. 
  239.  
  240.     You can find news.answers FAQ postings, including this one, archived
  241.     on rtfm.mit.edu:/pub/usenet.
  242.  
  243. 0.5    Feedback.
  244.  
  245.     Please send any comments, updates, or suggestions to me,
  246.     terryd@extro.ucc.su.oz.au. The sooner I get feedback about this
  247.     document, the sooner I can update and correct it. If you find any
  248.     problems with it, please mail me, instead of posting to one of the
  249.     newsgroups. I may miss your corrections. Thanks.
  250.  
  251.     Please send any money or interesting pieces of hardware to either
  252.     Fred, Linus, or the Free Software Foundation. They made this happen.
  253.  
  254.  
  255. 1.    NET-2 Supported Functionality.
  256.  
  257.     The NET-2 code is a complete kernel implementation of TCP/IP for
  258.     Linux, including many features not found in the original networking
  259.     code. NET-2 supports most popular Ethernet cards, real IP routing,
  260.     SLIP (Serial Line IP) for TCP/IP connections over a serial line, such
  261.     as the phone line via modem, and PLIP (Parallel Line IP) for local
  262.     connection of two machines using your printer ports. 
  263.  
  264.     NET-2 does not yet include:
  265.  
  266.      - SPX(SPP)/IPX(IDP)/NCP support, though it is being worked on.
  267.     - PPP support, this is being worked on, and an ALPHA version exists.
  268.       read on for more details.
  269.     - AX.25 support natively, though Alan Cox has some experimental code
  270.       available for pl14+ for you to try. Fred has the start of fully
  271.       integrated DDI based AX25 support in NET-2EB2+
  272.     - LAN types other than Ethernet, this means no Token Ring, no
  273.       FDDI, no ARCNET, etc. An experimental Token Ring driver is being
  274.       quietly developed.
  275.     - ISDN support, though I understand it too is being worked on.
  276.  
  277. 1.1    Supported Ethernet cards.
  278.  
  279.     NET-2 supports the following Ethernet cards (and more):
  280.  
  281.     3com 3c503, 3c503/16
  282.     Novell NE1000, NE2000
  283.     Western Digital WD8003, WD8013
  284.     Hewlett Packard HP27245, HP27247, HP27250
  285.  
  286.     The following clones are reported to work:
  287.     WD-80x3 clones: LANNET LEC-45
  288.     NE2000 clones: Alta Combo, Artisoft LANtastic AE-2, Asante Etherpak
  289.       2001/2003, D-Link Ethernet II, LTC E-NET/16 P/N 8300-200-002,
  290.       Network Solutions HE-203, SVEC 4 Dimension Ethernet, 4-Dimension
  291.       FD0490 EtherBoard 16, D-Link DE-600, SMC Elite 16.
  292.  
  293.     ** Please see the Ethernet HOWTO for more complete information. **
  294.  
  295.     As mentioned above, NET-2 also supports SLIP in the kernel. Therefore
  296.     if you don't have an Ethernet connection you can do TCP/IP over the
  297.     phone line, provided you have a SLIP server nearby (many universities
  298.     and businesses provide SLIP access to employees/students) and a
  299.     compatible modem (usually 14.4 v.42bis, depending on your SLIP server).
  300.     Two possible modems are the US Robotics Sportster, or the Infotel
  301.     144DF Internal. 
  302.  
  303.  
  304. 2.    Getting the NET-2 Software.
  305.  
  306.     Before you can configure TCP/IP on your system you need to get the
  307.     appropriate software. This includes the current version of the Linux
  308.     kernel (0.99.pl14 or above), TCP/IP configuration programs and files
  309.     (e.g., /etc/ifconfig, /etc/hosts), and finally a set of network
  310.     application programs (such as telnet, ftp, rlogin, etc.). 
  311.  
  312.     You may already have all of the items below. Check and make
  313.     sure that you do. For example, some distributions come with all
  314.     of the NET-2 configuration files, binaries, libraries, and kernel
  315.     installed, so there's no reason to get the following files.
  316.     Note: they may not be in the places specified in this HOWTO.
  317.  
  318.     If you DO have the NET-2 software already, skip to section 3 on
  319.     configuration. If you do NOT have the NET-2 software, follow the
  320.     directions below.
  321.  
  322.     The current kernel version is found in
  323.     nic.funet.fi:/pub/OS/Linux/PEOPLE/Linus/linux-0.99.14.tar.gz. 
  324.     This is a gzipped tar file; .gz is the new extension used by gzip.
  325.     If you have the old version of gzip, "zcat foo.gz | tar xvf -" works.
  326.  
  327.     The current libraries (libc-4.4.4), can be found in 
  328.     sunsite.unc.edu:/pub/Linux/GCC/image-4.4.4.tar.z. (You'll probably 
  329.     want to install the include files in inc-4.4.4.tar.z as well! See the 
  330.     READMEs there for details.) You'll need at least ver 4.4.2 to use
  331.     NET-2, as there were problems with earlier versions that affected
  332.     routing and netmasks.
  333.  
  334.     The current NET-2 configuration file distribution is in
  335.  
  336.     sunacm.swan.ac.uk:
  337.     /pub/misc/Linux/Networking/Programs/System/net032/net-0.32.tar.gz
  338.  
  339.     This package includes network configuration programs such as
  340.     ifconfig, route, netstat etc.
  341.  
  342.     The TCP/IP application binaries and setup files are found in:
  343.  
  344.     tsx-11.mit.edu:/pub/linux/packages/net/net-2/binaries/net-base.tar.z
  345.           "          "    "      "      "    "      "    /net-std.tar.z
  346.           "          "    "      "      "    "      "    /net-ext.tar.z
  347.  
  348.     As some of the internals of the networking code have changed, you will
  349.     also need to get and install the files that are in the:
  350.  
  351.     tsx-11.mit.edu:/pub/linux/packages/net/new-net-2
  352.  
  353.     directory, as they correct some problems you will experience if you
  354.     opt _not_ to get and install them :)
  355.  
  356.     If you use shadowed password (Most SLS users do), then you may find
  357.     that the standard network programs do not support them. There used
  358.     to be a specially modified package of binaries about, but these were
  359.     intended as a short term fix, and have been removed. Recent work on
  360.     the standard libraries will mean that as of version 4.5.8 of libc,
  361.     the shadow password handling will no longer need to be in the
  362.     application, and will be handled externally. At the time of writing
  363.     libc.4.5.8 has just been released. If you use shadowed passwords
  364.     you will most certainly want a copy of this.
  365.  
  366. 2.1    Unpacking the software.
  367.  
  368.     You don't need to unpack any of the following if you already have all
  369.     of the NET-2 software installed.
  370.     
  371.     First, unpack the kernel sources in /usr/src. This will put all
  372.     of the kernel sources under /usr/src/linux (the usual place).
  373.  
  374.         # cd /usr/src
  375.         # zcat linux-0.99.14.tar.z | tar xvf -
  376.  
  377.     Next, unpack the libraries. 
  378.     (The following is a summary, please read the detailed instructions
  379.     that come with the libraries for complete installation details)
  380.  
  381.         # cd /
  382.         # zcat image-4.4.4.tar.z | tar xvf -
  383.  
  384.     Now, make the links to the new libraries in /lib. BE VERY CAREFUL
  385.     that you do not delete the previous links. Do everything in
  386.     one step, as so:
  387.  
  388.         # ln -sf /lib/libc.so.4.4.4 /lib/libc.so.4
  389.         # ln -sf /lib/libm.so.4.4.4 /lib/libm.so.4
  390.  
  391.     Next, unpack the net-base package, which contains the basic
  392.     utils and configuration files in /etc. Note that net-base makes
  393.     symlinks in /etc for all of your TCP/IP configuration files to /conf.
  394.  
  395.     Therefore, BE WARNED: Before you unpack the following tar files,
  396.     make a backup of your files in /etc. Unpacking net-base will overwrite
  397.     many of the files in /etc with symbolic links to other places.
  398.     For example, /etc/hosts is a symlink to /conf/net/hosts. Why is this
  399.     done? Because Fred's Linux/PRO distribution of Linux keeps all
  400.     machine-specific configuration files in /conf. And because this is
  401.     the way he does it, we may as well too. In general it makes things
  402.     easier to locate. If you want to keep all of your net files in 
  403.     /etc, that's fine, but you'll have to put them there by hand.
  404.  
  405.     Make a backup of everything in /etc before you unpack net-base. 
  406.     Then unpack it from / (the root directory):
  407.  
  408.         # cd /
  409.         # zcat net-base.tar.z | tar xvvofp -
  410.  
  411.     Also, unpack net-std.tar.z, which contains the network clients and
  412.     daemons (e.g., telnet and telnetd). Unpack it from / as well:
  413.  
  414.         # cd /
  415.         # zcat net-std.tar.z | tar xvvofp -
  416.  
  417.  
  418.     If you wish to use tin (a newsreader), or DIG (the DARPA Internet
  419.     Groper), unpack the net-ext package from /:
  420.  
  421.         # cd /
  422.         # zcat net-ext.tar.z | tar xvvofp -
  423.  
  424.     Now unpack the fixed versions of rlogin/telnetd from the files:
  425.  
  426.         # cd /tmp
  427.         # gzip -dc ftpd.tar.z | tar xvf -
  428.         # gzip -dc telnet-rlogin.tar.z | tar xvf -
  429.  
  430.         you will then need to copy the binaries to where the old
  431.         version currently live.
  432.         
  433.     Finally, unpack the net-032 package, which contains the sources
  434.     for the TCP/IP setup programs (ifconfig, arp, route, etc.) and the
  435.     configuration files. This is unpacked into /usr/src/net-032.
  436.  
  437.         # mkdir /usr/src/net-032
  438.         # cd /usr/src/net-032
  439.         # zcat net-032.tar.gz | tar xvvofp -
  440.         # make install
  441.  
  442.     ** Important information for Shadow Password users **
  443.     If you are using the SLS distribution, then replace any blank
  444.     passwords in /etc/passwd with :x: instead of ::.
  445.     Otherwise rshd/rlogind will let anyone become these user ids.
  446.         This is an SLS setup bug and will, by default allow anyone remote
  447.     access to your machine, with root priveledges!
  448.  
  449. 2.2    Putting things in the right place.
  450.  
  451.     With the standard NET-2 distribution, all of the configuration files
  452.     are in /conf/net, with links in /etc. For example, /etc/hosts
  453.     is a link to /conf/net/hosts. However, if you are using a 
  454.     standard pre-packaged distribution of Linux such as SLS, /conf/net
  455.     probably isn't used... that is, /etc/hosts is just /etc/hosts.
  456.     So, when I say "/conf/net/hosts", I mean "/etc/hosts", and vice
  457.     versa.
  458.  
  459.     Just keep in mind that the TCP/IP software only looks in /etc and
  460.     /usr/etc for configuration files. Therefore, it makes sense to
  461.     keep all of your files in /etc and /usr/etc as they should be.
  462.     HOWEVER, Fred has decided to put the files in /conf/net with LINKS
  463.     in /etc. Either way, it doesn't matter. When we say "/etc/hosts",
  464.     it doesn't matter if /etc/hosts is an actual file or a link to
  465.     /conf/net/hosts.
  466.  
  467.     If you just unpacked NET-2 above (i.e. you don't already have the
  468.     files from installing SLS), then you don't have the configuration
  469.     files in /conf/net (you only have the symlinks in /etc). 
  470.     The easiest way to get the configuration files in /conf/net is
  471.     to copy them from the net-032 distribution:
  472.  
  473.         # mkdir -p /conf/net
  474.         # chown -R root.root /conf; chmod -R 755 /conf
  475.         # cp /usr/src/net-032/etc/* /conf/net
  476.  
  477.     You should make sure that all of the symlinks to /conf/net in /etc
  478.     can be resolved (that is, try to "more" or "cat" each file, make
  479.     sure you don't get any errors). Also note that some files will
  480.     be duplicated: for example, /etc/inetd.conf is a symlink to 
  481.     /usr/etc/inetd.conf. However, from the cp command above you also
  482.     have a /conf/net/inetd.conf, which can be deleted (remember that
  483.     all of the programs still look in /etc, not /conf. So whatever is
  484.     in /etc is the file which is actually being used).
  485.  
  486.  
  487. 2.3    Creating the device interfaces.
  488.  
  489.     In previous versions it was necessary to create a number of
  490.     device files for the NET-2 code. This is no longer the case.
  491.  
  492.     If you have any of the following files created you should delete
  493.     them:
  494.  
  495.     rm /dev/net /dev/unix /dev/inet
  496.     rm /dev/ip /dev/icmp /dev/tcp /dev/udp
  497.     rm /dev/wd0 /dev/wd1 /dev/wd2 /dev/wd3
  498.     rm /dev/ec0 /dev/ec1 /dev/ec2 /dev/ec3
  499.     rm /dev/ne0 /dev/ne1 /dev/ne2 /dev/ne3
  500.  
  501.     should clean them all.
  502.  
  503.     However, the arp program does need /dev/arp, so:
  504.  
  505.     mknod -m 600 /dev/arp c 16 1
  506.  
  507.     will create it ok. If you already have it, check that it looks
  508.     the same.
  509.  
  510. 3.    Building the Kernel.
  511.     
  512.     You're now ready to build the new 0.99.pl14 kernel with the NET-2
  513.     code enabled. 
  514.  
  515. 3.1    Configuring the NET-2 kernel code.
  516.  
  517.         A 'make config' will take you through configuring the kernel
  518.         Select the drivers you desire by answering 'yes' when prompted.
  519.  
  520.     Note, you will be prompted for "Network Device Support?", but
  521.     the label after it might suggest that this is for Ethernet only,
  522.     this is not the case, and you must answer 'yes' to this, even if
  523.     you only desire the slip or plip drivers to be configured.
  524.     You will be asked later about each of the ethernet drivers,
  525.     slip and plip in turn.
  526.  
  527.     The Ethernet HOWTO also contains much useful information for
  528.     configuring Ethernet devices in the kernel.
  529.  
  530. 3.2    Building the kernel.
  531.  
  532.     You can now build the kernel as you normally would (see the file
  533.     /usr/src/linux/README if you've never done this before). Essentially
  534.     this entails editing /usr/src/linux/Makefile to set root device and
  535.     default display mode. (*Note: keyboard is now handled by loadable
  536.     keymaps as of 0.99.pl10; grab the file keytable.tar.z from your 
  537.     nearest Linux ftp site). 
  538.  
  539.         Finally do 'make dep' and 'make'. You now have a new 0.99.14 kernel
  540.         with NET-2 set up. I wouldn't reboot it quite yet as we still have
  541.         to configure the NET-2 programs before it will work correctly.
  542.  
  543. 4.    Configuring NET-2 TCP/IP.
  544.  
  545.     The final step is to modify the various setup files to get NET-2
  546.     working. After this is ready you can boot your new kernel and 
  547.     go happily netting (if all goes well).
  548.  
  549.     In this section I'll describe each of the major TCP/IP setup files,
  550.     what they do, and what you need to do to configure them. 
  551.  
  552.     If you're using SLIP, see section 5.0 on configuring SLIP. The
  553.     discussion below is for Ethernet connections only. SLIP users
  554.     should FIRST read all of section 4.0 and then apply the changes
  555.     discussed in section 5.0.
  556.  
  557. 4.1    Before you begin.
  558.  
  559.     Before you can configure NET-2 TCP/IP, you need to find out
  560.     the following information about your network setup. Your network
  561.     admins can tell you most of these things.
  562.     
  563.     * IP address: this is the unique machine address in dotted-decimal
  564.       format. An example is 128.253.153.54. Your network admins will 
  565.       provide you with this number. 
  566.       
  567.       If you're only configuring loopback mode (i.e. no SLIP, no ethernet 
  568.       card, just TCP/IP connections to your own machine---called 
  569.       "loopback") then your IP address is 127.0.0.1.
  570.  
  571.     * Your network mask ('netmask'). For performance reasons, it is
  572.       desirable to limit the number of hosts on any particular segment
  573.       of a network. If you have a large number of addresses allocated
  574.       to you, you might break those addresses up into large chunks,
  575.       and create subnetworks, and then allow each individual network
  576.       segment be a subnetwork of the whole network. The network mask
  577.       is a pattern of bits, which when overlayed onto an address on your
  578.       network, will tell you which subnet that address lives on. This is
  579.       very important for routing, and if you find, for example, that you
  580.       can happily talk to people outside your network, but not to some
  581.       people within your network, there is a good chance that you have
  582.       an incorrect mask specified.
  583.  
  584.       Your network administrators will have chosen the netmask when the
  585.       network was designed, and therefore they should be able to supply
  586.       you with the correct mask to use. Most networks are class C
  587.       subnetworks which use 255.255.255.0 as their netmask. Other Class B
  588.       networks use 255.255.0.0. The NET-2 code will automatically select
  589.       a mask that assumes no subnetting as a default if you do not specify
  590.       a mask.
  591.  
  592.       The masks chosen by default are as follows:
  593.  
  594.       For addresses with the first byte:
  595.       1-127        255.0.0.0        (Class A)
  596.       128-191    255.255.0.0        (Class B)
  597.       192+        255.255.255.0        (Class C+)
  598.  
  599.       If one of these doesn't work, try the other. If this
  600.       doesn't work, ask your local net guru for help.
  601.  
  602.       This applies equally well to the loopback port. Since the
  603.       loopback ports address is always 127.0.0.1, the netmask for
  604.       this port is always 255.0.0.0. You can either specify this
  605.       explicitly or rely on the default mask.
  606.  
  607.     * Your network address. This is your IP address masked with the netmask.
  608.       For example, if your netmask is 255.255.255.0, and your IP address
  609.       is 128.253.154.32, your network number (IP addr AND netmask) is 
  610.       128.253.154.0. With a netmask of 255.255.0.0, 
  611.       this would be 128.253.0.0. 
  612.  
  613.       If you're only using loopback, you don't have a net address.
  614.  
  615.     * Your broadcast address. This is your IP address masked with the
  616.       netmask, and then possibly ORed with the subnetmask inverted.
  617.       Such that for a Class C network, with netmask 255.255.255.0,
  618.       your broadcast address will be your network address (calculated
  619.       above) ORed with 0.0.0.255.
  620.  
  621.       For example:
  622.  
  623.       Your IP address is:            128.253.154.32
  624.       Your netmask is:            255.255.255.0
  625.       netmask inverted is:            000.000.000.255
  626.  
  627.       then:
  628.  
  629.       Your broadcast address should be:    128.253.154.255.
  630.  
  631.       Note that for historical reasons, some networks are setup to use
  632.       the network address as the broadcast address, if you have any doubt,
  633.       check with your net admin.
  634.  
  635.       If you have access to a sniffer, or some other device capable of
  636.       providing a trace of your network, then you might be able to
  637.       determine both the network and broadcast addresses by looking at the
  638.       traffic on your network. Keep an eye open (or filter all traffic
  639.       except) for ethernet frames destined for the ethernet broadcast
  640.       address: ff:ff:ff:ff:ff:ff, if it is an IP datagram, then look at
  641.       the destination ip address. If the IP source address is your router,
  642.       and the protocol ID is not ARP, then what you are seeing might be a
  643.       routing broadcast. The destination IP address in this case will be
  644.       the IP broadcast address of your network. You can then work out the
  645.       IP network address. But again, if in doubt then consult your network
  646.       admin, or check the configuration of a known working machine.
  647.  
  648.       If you're only using loopback, you don't have a broadcast address.
  649.  
  650.     * Your gateway address. This is the address of the machine which
  651.       is your "gateway" to the outside world (i.e. machines not on your
  652.       subnet). In general the gateway machine has an IP address identical
  653.       to yours but with a ".1" in the last position; e.g. if your IP
  654.       address is 128.253.154.32, your gateway might be 128.253.154.1.
  655.       Your network admins will provide you with the IP address of your
  656.       gateway.
  657.  
  658.       If you're only using loopback, you don't have a gateway address.
  659.       If your network is not connected to the Internet, that is, it
  660.       is a standalone network, then you don't have a gateway, and
  661.       therefore don't need a gateway address.
  662.     
  663.     * Your nameserver address. Most machines on the net have a name
  664.       server which translates hostnames into IP addresses for them. 
  665.       Your network admins will tell you the address of your name server.
  666.       You can in fact run a nameserver on your own machine by running
  667.       named, in which case the nameserver address is 127.0.0.1. However,
  668.       But it is not required that you run named at all; see section
  669.       4.2.2.1.
  670.  
  671.       If you're only using loopback, you don't have a nameserver
  672.       address. (After all, you're only connecting to yourself.)
  673.  
  674.     SLIP USERS: You may or may not require any of the above information
  675.     except for a nameserver address. Depending on how your slip access
  676.     is achieved, you will either be given an ip address to use, in
  677.     which case you probably already know it, or the slip server will
  678.     dynamically allocate one for you. How to handle this situation is
  679.     described in section 5.
  680.  
  681.     NET-2 supports full routing, multiple routes, subnetworking (at
  682.     this stage on byte boundaries only), the whole nine yards. The above
  683.     describes most basic TCP/IP configurations. Yours may be quite
  684.     different: when in doubt, consult your local network gurus and check
  685.     out the man pages for "route" and "ifconfig" included with the net-032
  686.     package. Configuring TCP/IP networks is very much beyond the scope of
  687.     this document; the above should be enough to get most people started.
  688.  
  689. 4.2    /etc/rc.d/rc.inet1 and /etc/rc.d/rc.inet2
  690.  
  691.     For the non-UNIX wizard: "rc" files are run at bootup time by the
  692.     "init" program and start up all of the basic system programs, such
  693.     as sendmail, cron, etc. as well as the NET-2 daemons (such as inetd).
  694.     They are analogous to the MS-DOS autoexec.bat file, and "rc" might
  695.     stand for "runtime commands". For NET-2 the rc files are found in
  696.     /etc/rc.d. It doesn't really matter where you keep them, as long as
  697.     init can find them. (We'll go into this later). 
  698.  
  699.     First things first. The file /etc/rc.d/rc.inet1 configures the basic
  700.     TCP/IP interface to your machine, using two programs: /etc/ifconfig
  701.     and /etc/route.
  702.  
  703.     /etc/ifconfig is used for configuring interface with the parameters
  704.     that they require to function, such as IP addresses, network masks,
  705.     broadcast addresses and the like.
  706.  
  707.     /etc/route is used to create entries in a table (the routing table)
  708.     that the networking code will look in, to determine where to send
  709.     datagrams that it wishes to transmit.
  710.  
  711.     Note that in the previous NET-1 code, the name of the interface
  712.     configuration program was "config". However, the "standard" for UNIX
  713.     system TCP/IP configuration is to use ifconfig and route, and this has
  714.     been implemented with NET-2.
  715.     
  716.     THEREFORE: Be sure NOT to use /etc/config in your rc files. "config"
  717.     will not work with NET-2, and if you try and use it you will see
  718.     messages mentioning "old-style ioctl", and it wont work. You should
  719.     only run rc.inet1 and rc.inet2 at boot time (or rc.net after you have
  720.     converted it).
  721.  
  722.     NOTE: The standard SLS "rc" file file calls "/etc/rc.net" instead
  723.     of "/etc/rc.d/rc.inet1" and "/etc/rc.d/rc.inet2". The SLS rc.net
  724.     file can be treated as just the rc.inet1 and rc.inet2 files in
  725.     one file. So when you see rc.inet1, and rc.inet2 below, just add the
  726.     same commands into /etc/rc.net, and you will achieve the same result.
  727.     It is important that the commands in rc.inet1 be run first, so make
  728.     sure those commands are at the top of the file.
  729.  
  730.     Below you're going to edit rc.inet1 to use the correct ifconfig and
  731.     route commands for your machine. But first, you need to know the
  732.     information about your network setup in section 4.1, above.
  733.  
  734. 4.2.1    Editing rc.inet1
  735.  
  736.     Edit the file /etc/rc.d/rc.inet1. This file uses the "ifconfig" and
  737.     "route" commands to configure your network interface at boot time.
  738.     SLS Users: Remember that SLS uses just rc.net, and these command
  739.     should be called first, so put them at the top of the file.
  740.  
  741.     You may need to do some heavy surgery on this file to get it to look
  742.     right; it may be easier to delete it and start from scratch. Given
  743.     the information above, a possible rc.inet1 for a machine that has
  744.     a single ethernet interface should look like:
  745.  
  746.  
  747. #!/bin/sh
  748. # Portion of /etc/rc.d/rc.inet1 to configure the loopback interface
  749.  
  750. HOSTNAME=`hostname`
  751.  
  752. # Attach the loopback device. 
  753. /etc/ifconfig lo 127.0.0.1    # uses default netmask 255.0.0.0
  754. /etc/route add 127.0.0.1    # a route to point to the loopback device
  755. # End Loopback Definition
  756.  
  757. # Portion of /etc/rc.d/rc.inet1 to configure an ethernet interface
  758.  
  759. # IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the 
  760. # eth0 interface. If you're only using loopback or SLIP, don't include the
  761. # rest of the lines in this file.
  762.  
  763. # Edit for your setup.
  764. IPADDR="128.253.154.32"        # REPLACE with YOUR IP address!
  765. NETMASK="255.255.255.0"        # REPLACE with YOUR netmask!
  766. NETWORK="128.253.154.0"        # REPLACE with YOUR network address!
  767.                 # Note: NETWORK MUST be in
  768.                 #       /etc/networks
  769. BROADCAST="128.253.154.255"    # REPLACE with YOUR broadcast address, if you
  770.                 # have one. If not, leave blank and edit below.
  771. GATEWAY="128.253.154.1"        # REPLACE with YOUR gateway address!
  772.  
  773. /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
  774. # If you don't have a broadcast address, change the above line to just:
  775. # /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} 
  776.  
  777. /etc/route add ${NETWORK}            # MUST HAVE AN ENTRY IN
  778.                         # /etc/networks !!!
  779.  
  780. /etc/route add default gw ${GATEWAY} metric 1    # Only necessary if your
  781.                         # network has an Internet
  782.                         # connection.
  783. # End of Ethernet Configuration
  784.  
  785.  
  786.     This is a basic rc.inet1 to run the ifconfig and route commands
  787.     needed to set up a basic TCP/IP connection. Edit this for your setup.
  788.     If you do not have an ethernet interface, and either have a standalone
  789.     workstation (no network connection at all), or you use SLIP, then
  790.     you need only the two lines that refer to the loopback interface "lo"
  791.     as noted.
  792.  
  793.     To ensure that this will be run at boot time, make sure that you
  794.     include the command:
  795.  
  796.         /bin/sh /etc/rc.d/rc.inet1
  797.  
  798.     in your /etc/rc, or in your /etc/inittab (if you're running the
  799.     sysvinit package). In general, make sure that rc.inet1 is run
  800.     BEFORE rc.inet2 at boot time. You may wish to run rc.inet1 and
  801.     rc.inet2 from /etc/rc or /etc/rc.local. Or you can run them from
  802.     /etc/inittab. Either way is fine, but don't run one without the other.
  803.  
  804.  
  805. 4.2.2    Editing rc.inet2
  806.  
  807.     Having run rc.inet1, you now your interfaces configured with addresses,
  808.     and a routing table with enough information to get you started. You'll
  809.     now want to do something with them.
  810.  
  811.     The rc.inet2 script is also run at boot time, AFTER rc.inet1.
  812.     It starts up various TCP/IP daemons such as inetd, portmapper, 
  813.     and so on. Remember that SLS uses just rc.net, thus, the following
  814.     should appear at the bottom of the file.
  815.  
  816.     Now would be a really good time for you to read Olafs Network
  817.     Administrators Guide. It will help you decide what you need to
  818.     put in this file, and what you don't need to put in this file.
  819.  
  820.     But Briefly:
  821.     'inetd' is a program that sits in the background and manages
  822.     internet connection requests and the like. It is smart enough
  823.     that you don't need to leave a while bunch of servers running
  824.     even when there is nothing connected to them. When it sees an
  825.     incoming request for a particular service, eg telnet or ftp, it
  826.     will check the /etc/services file, and find what server program
  827.     needs to be run to manage the request, will start it, and hand
  828.     the connection over to it. Imagine it as a master server for you
  829.     internet servers.
  830.  
  831.     'syslogd' is a daemon (server that runs in the background) that
  832.     handles all system logging. It accepts messages generated for it,
  833.     will distribute them according to the specifications in
  834.     /etc/syslogd.conf. For example, certain types of messages you will
  835.     want to send to the console and also to log to a file, while others
  836.     will need only be logged, while others yet again, will only need
  837.     to go to the console. syslogd allows you to specify what messages
  838.     you want to send where.
  839.  
  840.     For a more complete and detailed description of how all the networking
  841.     bits and pieces fit together, please get Olaf Networking Guide as
  842.     described in section 0.3 (Related Documentation).
  843.  
  844.  
  845.     You will probably want to comment out most of this file, especially
  846.     if you're not planning on using NFS (Network File System). You 
  847.     MUST leave the stanza to run inetd and syslogd uncommented. Note
  848.     that if you DON'T uncomment everything but inetd and syslogd, 
  849.     you may run into network problems at first. The best bet is to 
  850.     comment all of these things out, get yourself on the network, and
  851.     then worry about configuring the rest of the clients in rc.inet2.
  852.  
  853.     If you're not going to be using NFS, you can comment out the lines
  854.     to run: ugidd, mountd, nfsd, pcnfsd, and bwnfsd.
  855.  
  856.     You can comment out the stanza to run "umail" unless you have that 
  857.     package. In general, most of the things found in rc.inet2 are "sold 
  858.     separately". I recommend starting only inetd and syslog at first
  859.     until you get everything going.
  860.  
  861.     The following is a copy taken from Fred's net-032 distribution.
  862.     Please check the "NET" declaration, as some distributions might
  863.     keep the network daemons in another directory.
  864.  
  865.     Each of the stanzas basically says: "If the filename xxxxxx exists,
  866.     and it is an ordinary file (not a directory, pipe, etc.) then
  867.     execute the following commands".
  868.  
  869.  
  870. #! /bin/sh
  871. #
  872. # rc.inet2    This shell script boots up the entire INET system.
  873. #        Note, that when this script is used to also fire
  874. #        up any important remote NFS disks (like the /usr
  875. #        distribution), care must be taken to actually
  876. #        have all the needed binaries online _now_ ...
  877. #
  878. # Version:    @(#)/etc/rc.d/rc.inet2    2.18    05/27/93
  879. #
  880. # Author:    Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
  881. #
  882.  
  883. # Constants.
  884. NET="/usr/etc"
  885. IN_SERV="lpd"
  886. LPSPOOL="/var/spool/lpd"
  887.  
  888. # At this point, we are ready to talk to The World...
  889. echo -e "\nMounting remote file systems ..."
  890. /bin/mount -t nfs -v        # This may be our /usr runtime!!!
  891.  
  892. echo -e "\nStarting Network daemons ..."
  893. # Start the SYSLOG daemon.  This has to be the first server.
  894. # This is a MUST HAVE, so leave it in.
  895. echo -n "INET: "
  896. if [ -f ${NET}/syslogd ]
  897. then
  898.     echo -n "syslogd "
  899.     ${NET}/syslogd
  900. fi
  901.  
  902. # Start the SUN RPC Portmapper.
  903. if [ -f ${NET}/rpc.portmap ]
  904. then
  905.     echo -n "portmap "
  906.     ${NET}/rpc.portmap
  907. fi
  908.  
  909. # Start the INET SuperServer
  910. # This is a MUST HAVE, so leave it in.
  911. if [ -f ${NET}/inetd ]
  912. then
  913.     echo -n "inetd "
  914.     ${NET}/inetd
  915. else
  916.     echo "no INETD found.  INET cancelled!"
  917.     exit 1
  918. fi
  919.  
  920. # Start the NAMED/BIND name server.
  921. if [ ! -f ${NET}/named ]
  922. then
  923.     echo -n "named "
  924.     ${NET}/named
  925. fi
  926.  
  927. # Start the ROUTEd server.
  928. if [ -f ${NET}/routed ]
  929. then
  930.       echo -n "routed "
  931.       ${NET}/routed -q #-g -s
  932. fi
  933.  
  934. # Start the RWHO server.
  935. if [ -f ${NET}/rwhod ]
  936. then
  937.     echo -n "rwhod "
  938.     ${NET}/rwhod -t -s
  939. fi
  940.  
  941. # Start the U-MAIL SMTP server.
  942. if [ -f XXX/usr/lib/umail/umail ]
  943. then
  944.     echo -n "umail "
  945.     /usr/lib/umail/umail -d7 -bd </dev/null >/dev/null 2>&1 &
  946. fi
  947.  
  948. # Start the various INET servers.
  949. for server in ${IN_SERV}
  950. do
  951.     if [ -f ${NET}/${server} ]
  952.     then
  953.         echo -n "${server} "
  954.         ${NET}/${server}
  955.     fi
  956. done
  957.  
  958. # Start the various SUN RPC servers.
  959. if [ -f ${NET}/rpc.portmap ]
  960. then
  961.     if [ -f ${NET}/rpc.ugidd ]
  962.     then
  963.         echo -n "ugidd "
  964.         ${NET}/rpc.ugidd -d
  965.     fi
  966.     if [ -f ${NET}/rpc.mountd ]
  967.     then
  968.         echo -n "mountd "
  969.         ${NET}/rpc.mountd
  970.     fi
  971.     if [ -f ${NET}/rpc.nfsd ]
  972.     then
  973.         echo -n "nfsd "
  974.         ${NET}/rpc.nfsd
  975.     fi
  976.  
  977.     # Fire up the PC-NFS daemon(s).
  978.     if [ -f ${NET}/rpc.pcnfsd ]
  979.     then
  980.         echo -n "pcnfsd "
  981.         ${NET}/rpc.pcnfsd ${LPSPOOL}
  982.     fi
  983.     if [ -f ${NET}/rpc.bwnfsd ]
  984.     then
  985.         echo -n "bwnfsd "
  986.         ${NET}/rpc.bwnfsd ${LPSPOOL}
  987.     fi
  988.  
  989. fi
  990. echo network daemons started.
  991. # Done!
  992.  
  993. 4.2.2.1    "To named or not to named... that is the question."
  994.  
  995.     "I dub thee ... "
  996.     Named is the nameserver daemon that runs under TCP/IP. It allows
  997.     your machine to serve the name lookup requests of other machines...
  998.     that is, if a machine wants to find the IP address for 
  999.     "goober.norelco.com", and you have this machine's IP address in your
  1000.     named database, then you can service the request and tell other
  1001.     machines what goober's address is. 
  1002.  
  1003.     Under older implementations of Linux TCP/IP, to create aliases for
  1004.     machine names (even for your own machine), you were required to run 
  1005.     named on your Linux box to store name->IP address translations. The
  1006.     problem with this is that named is generally difficult to setup and
  1007.     maintain. To solve this problem, a program called "hostcvt.build"
  1008.     was made available on Linux systems to translate your /etc/hosts file
  1009.     (see section 4.3) into named database files. However, even with
  1010.     this problem out of the way, running named on your system will cause
  1011.     some amount of CPU load and network traffic. 
  1012.  
  1013.     The bottom line is this: You DO NOT need to run named on your 
  1014.     Linux system. The SLS instructions will probably tell you to run
  1015.     hostcvt.build to set up named. This is simply unnecessary, UNLESS
  1016.     you want to make your Linux system a nameserver for some reason.
  1017.     Now, instead of putting hostnames into the named database, you can
  1018.     simply include them in the file /etc/hosts (section 4.3). When
  1019.     looking up names, your Linux system will first look in /etc/hosts
  1020.     and then ask the nameserver out on the net (if you have one).
  1021.  
  1022.     The only reason you may want to run named would be if:
  1023.       a) You're setting up a network of machines, and need a nameserver
  1024.          for one of them (and don't have a nameserver out on the net
  1025.          elsewhere);
  1026.       b) Your network admins want you to run your Linux system as a
  1027.          nameserver for some reason; or,
  1028.       c) You have a slow SLIP connection, and want to run a small
  1029.          cache-only nameserver on your Linux machine so that you don't
  1030.          have to go out on the phone line every time a name lookup
  1031.          occurs. (If you are only going to lookup a small number of
  1032.          machine names, and you know what they are, you can put their 
  1033.          addresses in /etc/hosts instead.) Generally name lookup isn't
  1034.          that slow, and should work fine over most SLIP connections.
  1035.       d) You want to run a nameserver for fun and excitement.
  1036.  
  1037.     In general, you DO NOT need to run named: this means that you
  1038.     can comment it out from rc.inet2, and you don't have to run
  1039.     hostcvt.build. If you want to alias machines, for example you want
  1040.     to refer to "loomer.vpizza.com" just as "loomer", you can add an
  1041.     alias in /etc/hosts instead. There is no reason to run named unless
  1042.     you truly want a full nameserver on your machine. If you already
  1043.     have a nameserver (most machines on the Internet do, and your net
  1044.     admins will tell you its address), don't bother running named.
  1045.  
  1046.     If you're only using loopback, you can run named and set your
  1047.     nameserver address to 127.0.0.1, but that's pointless. (No pun
  1048.     intended.) You don't need a nameserver at all if you use only
  1049.     loopback; the only hostname you know is your own, and it's in
  1050.     /etc/hosts (see section 4.3, below).
  1051.  
  1052.     Have I mentioned Olafs Network Administration Guide as described
  1053.     in section 0.3 (Related Documentation) yet ??
  1054.  
  1055. 4.3    /etc/hosts
  1056.  
  1057.     /etc/hosts contains a list of IP addresses and the hostnames they 
  1058.     map to. In this way, you can refer to other machines on the network
  1059.     by name, as well as by IP address. Using a nameserver (see section 4.1)
  1060.     also allows you to do the name->IP address translation automatically.
  1061.     (Running named allows you to run your own nameserver on your Linux
  1062.     box. See section 4.2.2.1 above.)
  1063.  
  1064.     This file needs to contain at least an entry for 127.0.0.1 with 
  1065.     the name "localhost". If you're not only using loopback, you need
  1066.     to contain an antry for your IP address, with your full hostname
  1067.     (such as loomer.vpizza.com).  You may also wish to include entries 
  1068.     for your gateway and network addresses. 
  1069.  
  1070.     For example, if "loomer.vpizza.com" has the IP address 
  1071.     "128.253.154.32", my /etc/hosts file would look like:
  1072.  
  1073.     # /etc/hosts: List of hostnames and IP addresses
  1074.     127.0.0.1         localhost
  1075.     128.253.154.32         loomer.vpizza.com loomer
  1076.     # end of hosts
  1077.  
  1078.     Once again, edit this for your own needs. If you're only using 
  1079.     loopback, the only line in /etc/hosts should be for 127.0.0.1, with
  1080.     both "localhost" and your hostname after it.
  1081.     
  1082.     Note that in the second line, above, there are two names for 
  1083.     128.253.154.32: "loomer.vpizza.com" and just "loomer". The first name 
  1084.     is the full hostname of the machine. The second is an alias---it 
  1085.     allows me to just use "rlogin loomer" without having to type in the 
  1086.     entire name.
  1087.  
  1088. 4.3.1    Important note regarding /etc/hosts from NET-032.
  1089.  
  1090.     If you using the hosts file that came with NET-032, then:
  1091.     The line "%%IP%%    %%HOST%% %%ALIAS%%" needs to be deleted from 
  1092.     this file! This is a "tag" line used by Fred's experimental net
  1093.     config scripts. Matt Welsh is now writing a new set of scripts which
  1094.     don't use these lines. In any of these files, you see curious lines
  1095.     with entries such as "%%NAME%%", these lines MUST be deleted. If you
  1096.     don't delete them, you may have lots of strange errors and overflowing
  1097.     syslog files.
  1098.  
  1099. 4.4    /etc/networks
  1100.  
  1101.     The /etc/networks file lists the names and addresses of your own,
  1102.     and other, networks. It is used by the route command, and allows
  1103.     you to specify a network by name, should you so desire.
  1104.  
  1105.     NOTE: Every network you wish to add a route to using the 'route'
  1106.     command MUST have an entry in /etc/networks
  1107.  
  1108.     Its format is similar to that of the /etc/hosts file, (Sec 4.3)
  1109.     and an example one might look like:
  1110.  
  1111. #
  1112. # /etc/networks: list all networks that you wish to add route commands
  1113. #                for in here
  1114. #
  1115. default        0.0.0.0        # default route    - mandatory
  1116. loopnet        127.0.0.0    # loopback network - mandatory
  1117. mynet        128.253.154.0    # Example network CHANGE to YOURS
  1118. #
  1119. # end of networks
  1120.  
  1121.     
  1122. 4.5    /etc/host.conf
  1123.  
  1124.     The system has some library functions called the resolver library.
  1125.     This file specifies how your system will lookup host names. It should
  1126.     contain the two lines:
  1127.  
  1128.         order hosts,bind
  1129.         multi on
  1130.  
  1131.     These two lines tell the resolve libraries to first check the 
  1132.     /etc/hosts file for any names to lookup, and then ask the nameserver
  1133.     (if one is present). The "multi" entry allows you to have multiple
  1134.     IP addresses for a given machine name in /etc/hosts.
  1135.  
  1136.     This file comes from the implementation of the resolv+ bind 
  1137.     library for Linux. You can find further documentation in the
  1138.     resolv+(8) man page (if you have the man page available).
  1139.  
  1140.     If you don't, they are available from:
  1141.         Site:           src.doc.ic.ac.uk [146.169.2.1]
  1142.         Directory:      /computing/comms/tcpip/nameserver/resolv+
  1143.         File:           resolv+2.1.1.tar.Z
  1144.  
  1145.     This file contains resolv+.8, which is the man page for the
  1146.     resolver library.
  1147.  
  1148. 4.6    /etc/resolv.conf
  1149.  
  1150.     This file actually configures the system name resolver.
  1151.     This file contains two types of entries: The addresses of your
  1152.     nameservers (if any), and the name of your domain (if you have one).
  1153.     If you're running your own nameserver (i.e., you're running named
  1154.     on your Linux machine: see section 4.2.2.1), then the address of
  1155.     your nameserver is just 127.0.0.1 (the loopback address).
  1156.  
  1157.     Your domain name is your fully-qualified hostname (if you're a
  1158.     registered machine on the Internet, for example), with the hostname
  1159.     chopped off. That is, if your full hostname is loomer.vpizza.com,
  1160.     your domain name is just "vpizza.com", without the hostname ("loomer").
  1161.  
  1162.     For example, if your machine is goober.norelco.com, and has a
  1163.     nameserver at the address 128.253.154.5, your /etc/resolv.conf would 
  1164.     look like:
  1165.  
  1166.         domain norelco.com
  1167.         nameserver 127.253.154.5
  1168.  
  1169.     You can specify more than one nameserver. Each one
  1170.     must have a "nameserver" line of its own in resolv.conf.
  1171.  
  1172.     If you're only using loopback, you don't need a nameserver.
  1173.  
  1174. 4.7    /etc/HOSTNAME
  1175.  
  1176.     This is a new file; it contains the full hostname of your machine 
  1177.     (with the domain name). It is used by the 'hostname' command, to
  1178.     saveyou having to supply the hostname as an argument. For example,
  1179.     the machine above would have the file /etc/HOSTNAME:
  1180.  
  1181.         goober.norelco.com
  1182.  
  1183.     That's all.
  1184.  
  1185. 4.8    /etc/rc.local
  1186.  
  1187.     Change the line in /etc/rc.local (or /etc/rc, depending on your
  1188.     setup) which sets your system's hostname, to
  1189.  
  1190.         /bin/hostname -S
  1191.  
  1192.     (You have a new hostname in /bin.) This sets your hostname from
  1193.     the name found in /etc/HOSTNAME. If you don't like this (personally
  1194.     I don't), just do:
  1195.         /bin/hostname -S <your-hostname>
  1196.  
  1197.     For example,
  1198.         /bin/hostname -S loomer.vpizza.com
  1199.  
  1200.     It IS important that you give a full hostname (with domain name)
  1201.     in /etc/HOSTNAME. This allows the hostname command to set the
  1202.     host AND domainname in one shot. 
  1203.  
  1204.     IMPORTANT: The hostname found in /etc/HOSTNAME *must* be a valid
  1205.     hostname. This means that it must be found in /etc/hosts (or that
  1206.     your nameserver must be able to resolve it, but you should put it
  1207.     in /etc/hosts in case your nameserver is down).
  1208.  
  1209. 4.9    Other files.
  1210.  
  1211.     There are of course many other files in /etc which you may need to
  1212.     dabble with later on. Instead of going into them here, I'm going to
  1213.     provide the bare minimum to get you on the net. More information will
  1214.     be provided in later versions of the NET-2 HOWTO.
  1215.  
  1216.     Once you have all of the files set up, and everything in the 
  1217.     right place, you should be able to reboot your new kernel and
  1218.     net away to your heart's content. However, I strongly suggest
  1219.     that you keep a bootable copy of your old kernel and even possibly
  1220.     a "recovery disk" (say, the SLS a1 disk, or HJLu's single disk
  1221.     boot disk) in case you hosed your /etc/rc files, for example,
  1222.     and can't login when you boot. 
  1223.  
  1224.  
  1225. 5.    Configuring SLIP.
  1226.  
  1227.     SLIP (Serial Line Internet Protocol) allows you to use TCP/IP 
  1228.     over a serial line, be that a phone line, with a dialup modem, or
  1229.     a leased asynchronous line of some sort. Of course, to use SLIP you'll
  1230.     need access to a dial-in SLIP server in your area. Many universities
  1231.     and businesses provide SLIP access all over the world.
  1232.  
  1233.     SLIP uses the serial ports on your machine to carry IP datagrams.
  1234.     To do this is must take control of the serial device. Slip devices
  1235.     are named 'sl0', 'sl1' etc, how do these correspond to your serial
  1236.     devices ? The networking code uses what is called an IOCTL (I/O
  1237.     control) call to change the serial devices into slip devices. There
  1238.     are two programs supplied that can do this, they are 'dip' and
  1239.     'slattach'.
  1240.  
  1241.     'dip' (Dialup IP) is a smart program that is able to set the speed
  1242.     of the serial device, command your modem to dial the remote end of
  1243.     the link, automatically log you into the remote machine, search for
  1244.     messages sent to you and extract information from them such as your
  1245.     IP address, and perform the IOCTL to change the serial device over
  1246.     to a slip device.
  1247.  
  1248.     'slattach' on the other hand does very little other than set the
  1249.     serial device speed and perform the IOCTL to convert it to a slip
  1250.     device.
  1251.  
  1252.     When do you use which ? You would use dip when your link to the
  1253.     machine that is your slip server is a dialup modem, or some other
  1254.     temporary link. You would use 'slattach' when you have a leased
  1255.     line, perhaps a cable, between two machines, and there is no special
  1256.     action needed to get the link working. See section 5.4 for more
  1257.     information.
  1258.     
  1259.     Configuring SLIP is much like configuring an Ethernet interface
  1260.     (please read section 4.0 above). However, there are a few key
  1261.     differences.
  1262.  
  1263.     First of all, slip links are unlike an Ethernet network in that
  1264.     there are only ever two hosts on the network, one at each end.
  1265.     Unlike an ethernet that is available for use as soon as you are
  1266.     cabled, with slip, depending on the type of link you have, you
  1267.     may have to command your modem to establish the connection to
  1268.     the remote modem. Dialing in and connecting to your SLIP server is 
  1269.     usually done at boot time, usually by a program called "dip" 
  1270.     (found in the "dip" subdir of the net-032 package). "Dip" not only 
  1271.     dials and logs you into the SLIP server, but it also initiates the 
  1272.     SLIP connection and runs the appropriate ifconfig and route commands 
  1273.     to initialize the device. Therefore, the only lines needed in 
  1274.     /etc/rc.d/rc.inet1 are the few commands to initilize the loopback 
  1275.     connection at the top (see section 4.2.1 above).
  1276.  
  1277.     If you're not using DIP, you may indeed have to edit rc.inet1 for
  1278.     your SLIP parameters.
  1279.  
  1280.     Also, there are two types of SLIP servers: Dynamic IP address
  1281.     servers and static IP address servers. Dynamic servers allocate
  1282.     a new, different IP address to you every time you dialin and
  1283.     initiate a connection. Static servers give you the same address
  1284.     every time. Almost every SLIP server will also prompt you for
  1285.     a username and password when dialing in: DIP can handle logging
  1286.     you in automatically.
  1287.  
  1288.     Essentially, configuring a SLIP connection is just like configuring
  1289.     for loopback or ethernet. The main differences are discussed below.
  1290.     Read section 4.0 above for information on configuring your TCP/IP
  1291.     files, and apply the changes below.
  1292.  
  1293. 5.1    Static SLIP server connections using a dialup line.
  1294.  
  1295.     If you have a static-allocation server (same IP address every time),
  1296.     then you may want to put entries for your hostname and IP address
  1297.     (since you know what your IP address is!) in /etc/hosts. You should
  1298.     also configure the other files listed in section 4.0: rc.inet2, 
  1299.     host.conf, resolv.conf, /etc/HOSTNAME, and rc.local). Remember that
  1300.     when configuring rc.inet1, you don't need to run the ifconfig and
  1301.     route commands other than the two for the loopback interface (if
  1302.     you're using DIP to dial your connection).
  1303.  
  1304.     In general, your gateway is the IP address of your SLIP server.
  1305.     Because DIP handles the configuration of the route, you probably
  1306.     don't need to know this, but in some cases you might have to run the
  1307.     appropriate ifconfig or route commands in /etc/rc.d/rc.inet1 to
  1308.     get it to work correctly. Instead of using "eth0" as your interface 
  1309.     name, SLIP connections use "sl0".  Keep in mind that you can't
  1310.     ifconfig sl0 until you have dialed the connection and connected to
  1311.     the SLIP server.
  1312.  
  1313.     Also, you may need to use the "pointopoint" argument to ifconfig if
  1314.     DIP does not do it correctly. For example, if your SLIP server's 
  1315.     address is 44.136.8.5, and your IP address is 128.253.154.32, you may 
  1316.     need to run the command 
  1317.  
  1318.         # /etc/ifconfig sl0 128.253.154.32 pointopoint 44.136.8.5
  1319.  
  1320.     See the man pages for ifconfig in the net-032 package.
  1321.  
  1322. 5.2    Static SLIP server connections using a leased line or cable.
  1323.  
  1324.     If you have a leased line, or cable to your slip server, then you
  1325.     do not need to worry with the hassle of causing your modem to
  1326.     dial and establish the connection. In this situation the 'slattach'
  1327.     program is the best solution for configuring your SLIP link.
  1328.  
  1329.     I can think of no better way of describing the process than by
  1330.     illustration. In your rc.inet1 file you would have something similar
  1331.     to the following:
  1332.  
  1333. # Portion of /etc/rc.d/rc.inet1 for leased line static slip connection
  1334. #!/bin/sh
  1335. IPADDR="128.253.154.32"         # REPLACE with YOUR IP address!
  1336. REMADDR="128.253.154.33"    # REPLACE with YOUR OTHER SLIP servers address!
  1337.  
  1338. slattach -p cslip -s 19200 /dev/ttyS0
  1339. /etc/ifconfig sl0 $IPADDR pointopoint $REMADDR up
  1340. /etc/route add default gw $REMADDR
  1341.  
  1342. # End
  1343.  
  1344.     slattach allocates the first unallocated slip device to the serial
  1345.     device specified. slattach starts with 'sl0'. Therefore the first
  1346.     slattach command attaches slip device 'sl0' to the serial device
  1347.     specified, 'sl1' the next time etc.
  1348.  
  1349.     Note also that the first parameter that slattach accepts is one to
  1350.     specify the protocol. At present the only working values are
  1351.     'slip', and 'cslip'. 'cslip' is compressed slip, it is the same
  1352.     slip, except that the datagrams headers have been compressed to
  1353.     reduce overhead on the link. On good clean links this is recommended.
  1354.     In future protocols such as PPP, and KISS (for Amateur Radio use)
  1355.     will be offered.
  1356.  
  1357.     After you have 'slattached' the interface, you can now configure
  1358.     it with ifconfig as you would an ethernet interface, but since
  1359.     there is only one other machine that you can talk to directly via
  1360.     the link you do not need to worry about netmasks and the like.
  1361.     Normally you would point your default route to the slip interface,
  1362.     as it is your connection to every other machine. The pointopoint
  1363.     parameter should automatically add a route to the machine at the
  1364.     other end of the link. Its primary function is to tell your machine
  1365.     that there are no other hosts on that network interface.
  1366.  
  1367.     If you have more than one slip interface then you will have routing
  1368.     considerations to make. You will have to decide what routes to
  1369.     add, and those decisions can only be made on the basis of the
  1370.     actual layout of your network connections.
  1371.  
  1372. 5.3    Dynamic SLIP server connections using a dialup line.
  1373.  
  1374.     If your SLIP server allocates a new IP address to you every time
  1375.     you dialin, you don't know your IP address at all, so you can't
  1376.     include an entry in /etc/hosts for your machine. (If you want, you 
  1377.     can place your hostname in /etc/hosts with the address 127.0.0.1). 
  1378.  
  1379.     Most dynamic SLIP servers tell you your IP address when you initiate 
  1380.     the connection. For example, it may print a string such as, "Your IP 
  1381.     address is 128.253.154.10. Server address is 128.253.154.1." DIP will 
  1382.     need to know these numbers when it configures the connection. See 
  1383.     section 5.3 below on using DIP.
  1384.  
  1385.     If you use DIP, it does all of the work of configuring the 
  1386.     connection when you dialin, so rc.inet1 only needs the two lines
  1387.     to configure the loopback address (see section 4.2.1 above). 
  1388.     Also, see section 5.1 above. You need to configure all of
  1389.     the files listed in section 4.0. Your gateway address (should you
  1390.     need to know it) will be the address of the SLIP server. Also,
  1391.     you may need to run ifconfig on sl0 using the SLIP server's address
  1392.     as the "pointopoint" argument (see section 5.1 above). However, if 
  1393.     you use DIP, it should be able to do all of the ifconfig and route 
  1394.     commands for you.
  1395.  
  1396.     One good way to figure out how to configure SLIP on your machine is
  1397.     to find someone else who uses the SLIP server (it can be on a PC,
  1398.     Mac, UNIX box, whatever) and find out what numbers they use. 
  1399.  
  1400.  
  1401. 5.4    Using DIP.
  1402.  
  1403.     DIP can simplify the process of dialing into the SLIP server, logging
  1404.     in, starting the connection, and configuring the sl0 device with
  1405.     the appropriate ifconfig and route commands. 
  1406.  
  1407.     Essentially, to use DIP you'll write a "chat script" which is 
  1408.     basically a list of commands to send to DIP along with commands for
  1409.     logging in, starting the connection, and so on. See "sample.dip"
  1410.     in the net-032 package for an explanation. DIP is quite a powerful
  1411.     program, with many options. Instead of going into all of them here
  1412.     you should look at the READMEs and the sample files from tsx-11 and
  1413.     the net-032 distribution.
  1414.  
  1415.     You may notice that the sample.dip script assumes that you're using
  1416.     a static SLIP server, so you know what your IP address is beforehand.
  1417.     For dynamic SLIP servers, the newer version of dip include a command
  1418.     you can use to automatically read and configure your interface
  1419.     with the address printed by your server. The following sample was
  1420.     contributed by Paul Mossip, and is probably a good starting point
  1421.     for you:
  1422.  
  1423.  
  1424. #
  1425. # Connection script for SLIP to knoware.nl.mugnet.org
  1426. #
  1427.  
  1428.   # Fetch the IP address of our target host.
  1429. main:
  1430.  
  1431.   # Set the desired serial port and speed.
  1432.   port /dev/cua0
  1433.   speed 38400
  1434.  
  1435.   # Reset the modem and terminal line.
  1436.   reset
  1437.  
  1438.   # Prepare for dialing.
  1439.   send ATZ1\r
  1440.   wait OK 4
  1441.   if $errlvl != 0 goto error
  1442.   dial 666-0999                ## Change to your servers number!
  1443.   if $errlvl != 0 goto error
  1444.   wait CONNECT 60
  1445.   if $errlvl != 0 goto error
  1446.  
  1447.   # We are connected.  Login to the system.
  1448. login:
  1449.   sleep 3
  1450.   send \r\n\r\n
  1451.   wait gracelands> 20            ## Change to your servers prompt
  1452.   if $errlvl != 0 goto error
  1453.   send login\n
  1454.   wait name: 10                ## Wait username: prompt
  1455.   if $errlvl != 0 goto erro
  1456.   send elvisp\n                ## Change to your own!
  1457.   wait ord: 10                ## Wait password prompt
  1458.   if $errlvl != 0 goto error
  1459.   send alive\n                ## Change to your own!
  1460.   wait gracelands> 10
  1461.   if $errlvl != 0 goto error
  1462.   send slip\n                ## Change to suit your server
  1463.   wait SLIP 30                ### Wait for SLIP prompt
  1464.   if $errlvl != 0 goto error
  1465.   get $local remote 10            ## Assumes the server sends your IP..
  1466.   if $errlvl != 0 goto error        ## address as soon as you enter slip.
  1467.   get $remote gracelands        ## slip server address from /etc/hosts
  1468. done:
  1469.   print CONNECTED to $remote with address $rmtip we are $local
  1470.   default
  1471.   mode SLIP
  1472.   goto exit
  1473. error:
  1474.   print SLIP to $host failed.
  1475. exit:
  1476. #
  1477. # End dip script
  1478.  
  1479.  
  1480.     The example above will automatically point your default route via your
  1481.     slip link, if this is not what you want, you might have an ethernet
  1482.     connection that should be your default route, then remove the 'default'
  1483.     command.
  1484.  
  1485.     The above example is fairly robust. Please refer to the 'dip' man
  1486.     page for more information.
  1487.  
  1488.     It should be simple to modify the code for DIP in the file attach.c
  1489.     to run the route and ifconfig commands that work for you automatically.
  1490.  
  1491. 5.5    Configuring your Linux Machine as a SLIP Server.
  1492.  
  1493.     Note: Some of the information below came from the dip man pages,
  1494.     where in fact how to run Linux as a slip server is briefly documented.
  1495.  
  1496.     To configure Linux as a slip server, you need to create Special
  1497.     slip accounts for users, where dip (in slave mode) is used as the
  1498.     login shell. Fred suggests that he has a convention of having all
  1499.     of his Slip accounts begin with a capital 'S', eg "Sfredm".
  1500.  
  1501.     Because the login program won't accept arguments to the login shell,
  1502.     you will need to create a small program that looks like the following:
  1503.  
  1504. /* dip-i.c - from a mail message of Karl kkeyte@esoc.bitnet */
  1505. int main()
  1506. {
  1507.    execlp("dip", "dip", "-i", (char *) 0);
  1508. }
  1509.  
  1510.     Compile it with: 'gcc -O dip-i.c -o dip-i'
  1511.  
  1512.     Give it permissions 555. I recommend calling it /usr/bin/dip-i as
  1513.     shown below.
  1514.  
  1515.     A sample /etc/passwd entry for a Slip user looks like:
  1516.  
  1517.     Sfredm:ij/SMxiTlGVCo:1004:10:UUNET:/tmp:/usr/bin/dip-i
  1518.      ^^         ^^        ^^  ^^   ^^    ^^   ^^
  1519.       |          |         |   |    |     |    \__ shell program running
  1520.           |          |         |   |    |     |         dip -i as login shell
  1521.       |          |         |   |    |     \_______ Home directory
  1522.       |          |         |   |    \_____________ User Full Name
  1523.       |          |         |   \__________________ User Group ID
  1524.       |          |         \______________________ User ID
  1525.       |          \________________________________ Encrypted User Password
  1526.       \___________________________________________ Slip User Login Name
  1527.  
  1528.  
  1529.     After the user logs in, the login(1) program, if it finds and
  1530.     verifies the user ok, will execute the shell program 'dip-i' which
  1531.     will execute dip command in input mode (-i). Dip now scans the
  1532.     /etc/net/diphosts file for an entry for the given user name.
  1533.     Therefore, each slip user must also have an entry in
  1534.     /etc/net/diphosts.
  1535.  
  1536.  
  1537. 5.6    /etc/net/diphosts
  1538.  
  1539.     /etc/net/diphosts is used by dip to lookup preset configurations for
  1540.     remote hosts. These remote hosts might be users dialing-into your
  1541.     linux machine, or they might be for machines that you dial into
  1542.     with your linux machine.
  1543.  
  1544.     The general format for /etc/net/diphosts is as follows:
  1545.  
  1546.     Suwalt::145.71.34.1:SLIP uwalt:CSLIP,1006
  1547.       ^    ^  ^            ^         ^     ^
  1548.       |    |  |            |         |     \___ MTU
  1549.       |    |  |            |         \_________ protocol (SLIP, CSLIP,
  1550.       |    |  |            |                    KISS, PPP)
  1551.       |    |  |            \___________________ comment field ("gecos" :-)
  1552.       |    |  \________________________________ IP address of the other
  1553.       |    |                                    side, or host.domain.name
  1554.       |    \___________________________________ unused (compat. with passwd)
  1555.       \________________________________________ login name (as returned by
  1556.                                                 getpwuid(getuid()) )
  1557.  
  1558.  
  1559.     An example /etc/net/diphosts entry for a remote slip user might be:
  1560.  
  1561.         Sfredm::145.71.34.1:SLIP uwalt:SLIP,296
  1562.         which specifies a SLIP link with MTU==296, or
  1563.  
  1564.         Sfredm::145.71.34.1:SLIP uwalt:CSLIP,1006
  1565.         which specifies a CSLIP-capable link with MTU of 1006.
  1566.  
  1567.     When a user logs in, they will receive a normal login, and
  1568.     password prompt, at which they should enter their slip-login
  1569.     userid and password. If they check out ok, then the user will
  1570.     see no special messages, they should just change into slip mode
  1571.     at their end, and then they should be able to connect ok, and be
  1572.     configured with the paramters from the diphosts file.
  1573.  
  1574. 5.7    Configuring PLIP interfaces.
  1575.  
  1576.     PLIP is like SLIP, in that it is used for providing point to point
  1577.     IP links between machines, except that it is designed to use the
  1578.     Parallel ports on your machine instead of the serial ports. Because
  1579.     it is possible to transfer more than one bit at a time with the
  1580.     Parallel port, it is possible to attain higher speeds with the
  1581.     plip interface than with the serial interface. In addition, even
  1582.     the simplest of parallel ports, printer ports, can be used, in
  1583.     lieu of you having to purchase conmparatively expensive 16550AFN
  1584.     UARTs for your serial ports.
  1585.  
  1586.     When compiling the kernel, there is only one file that might need
  1587.     to be looked at. That file is net/drv/plip/global.h, and it contains
  1588.     timers in mS. The defaults are probably going to be fine, unless you
  1589.     have an especially slow computer, in which case you might have to
  1590.     increase them on the machine at the other end of the link.
  1591.  
  1592.     A sample configuration for a plip interface might be:
  1593.  
  1594. #!/bin/sh
  1595. # Portion of /etc/rc.d/rc.inet1 for PLIP connection to local machine
  1596.  
  1597. IPADDR='192.148.64.1'        # Replace with YOUR IP Address
  1598. REMADDR='212.194.167.1'        # Replace with the address of YOUR OTHER HOST
  1599.  
  1600. ifconfig pl0 $IPADDR pointopoint $REMADDR up    # Configure PLIP interface
  1601. route add default gw $REMADDR            # Route to other machine.
  1602.  
  1603. # End
  1604.  
  1605.     The pointopoint parameter has the same meaning as for SLIP, in 
  1606.     that it specifies the address of the machine at the other end of
  1607.     the link.
  1608.  
  1609.     In almost all respects, you can treat a plip interface as though
  1610.     it were a slip interface, except that neither 'dip' nor 'slattach'
  1611.     can be, or are used.
  1612.  
  1613. 5.7.1    PLIP Cabling Diagram.
  1614.  
  1615.     PLIP has been designed to use cables with the same pinout as those
  1616.     commonly used by the better known of the dos based pc-pc file transfer
  1617.     programs. The pinout diagram (taken from net/drv/plip/README) looks as
  1618.     follows:
  1619.  
  1620.     Pin Name    Connect pin - pin:
  1621.     --------------    ----------------------
  1622.         GROUND          25 - 25
  1623.         D0->ERROR       2 - 15          15 - 2
  1624.         D1->SLCT        3 - 13          13 - 3
  1625.         D2->PAPOUT      4 - 12          12 - 4
  1626.         D3->ACK         5 - 10          10 - 5
  1627.         D4->BUSY        6 - 11          11 - 6
  1628.         D5              7*
  1629.         D6              8*
  1630.         D7              9*
  1631.         STROBE output   1*
  1632.         AUTOFD output   14*
  1633.         INIT output     16*
  1634.         SLCTIN output   17*
  1635.  
  1636.         Do not connect the pins marked with an asterisk (`*').  They are
  1637.         D5 (pin 7), D6 (pin 8) and D7 (pin 9).  STROBE is pin 1, FEED is
  1638.         pin 14.
  1639.  
  1640.         Extra grounds are on pins 18, 19, 20, 21, 22, 23 and 24.
  1641.  
  1642.         If the cable you are using has a metallic shield it should be
  1643.         connected to the metallic DB-25 shell at one end only.
  1644.  
  1645. 6.    PPP (Under construction).
  1646.  
  1647.     There is now some ALPHA PPP software available. For the latest
  1648.     information relating to it, join the PPP channel on the niksula.hut.fi
  1649.     list server, and keep your eye on comp.os.linux.development.
  1650.     Already there have been some encouringly good reports for it.
  1651.  
  1652.     The PPP software comes in two parts. Some kernel modifications, and
  1653.     the ppp daemon. They are available at the following locations:
  1654.  
  1655.     ftp://ftp.gang.umass.edu/user/michael/linux-ppp-0.1.5.tgz
  1656.     ftp://ftp.gang.umass.edu/user/michael/pppd-0.1.4.tgz
  1657.  
  1658.     Please check that there isn't a later version there, and be
  1659.     sure to read any README files or the like that are there as
  1660.     well, as they will tell you how to install, where to report
  1661.     bugs and the like.
  1662.  
  1663. 7.    AX.25 (Under construction).
  1664.  
  1665.     Alan Cox has some experimental AX.25 code available for testing.
  1666.  
  1667. 8.    Are You Stuck ?
  1668.  
  1669.     Really ? Then you should read the man pages for ifconfig and route, 
  1670.     included in the net-032 package, and understand their functions. These 
  1671.     commands have a lot of flexibility, and because everyone's network 
  1672.     setup is different, you may find a way to use ifconfig and route to
  1673.     get your connection working. If you do, feel free to send me some mail
  1674.     so I can include it in the next update of the NET-2 HOWTO. Because of
  1675.     my limited amount of experimental data, most of the discussion above
  1676.     is about my own setup, and I'd like to generalize it as much as 
  1677.     possible.
  1678.  
  1679.     Matt is currently writing a set of scripts to simplify NET-2
  1680.     configuration. You can pick up the pre-alpha release from
  1681.     tc.cornell.edu, in the file /pub/mdw/netconf-0.3.tar.z. These scripts
  1682.     maintain a small database of network configuration info, and allow you
  1683.     to easily modify and configure your network interface. The scripts are
  1684.     far from complete: Matt has been waiting until the NET-2 interface
  1685.     itself stabilizes a bit more before upgrading it further. 
  1686.  
  1687.     Another good place to look for help on setting up NET-2 is the 
  1688.     O'Reilly and Associated book 'TCP/IP Network Administration',
  1689.     the one with the crab on the cover. Keep in mind that NET-2 is now
  1690.     a "standard" implementation of TCP/IP, this means that ifconfig
  1691.     and route work the same under Linux as they do on other UNIX systems.
  1692.     Keep also in mind that some of the arguments and options may differ
  1693.     slightly from those in the book.
  1694.  
  1695.     You might also search out the following documents which are an
  1696.     excellent source of tutorial information on tcp/ip:
  1697.  
  1698.     athos.rutgers.edu:/runet
  1699.     -rw-r--r--  1 0        0          176218 Oct 20  1989 tcp-ip-admin.doc
  1700.     -rw-r--r--  1 0        0          214199 Oct 20  1989 tcp-ip-admin.ps
  1701.     -rw-r--r--  1 0        0           92106 Oct 20  1989 tcp-ip-intro.doc
  1702.     -rw-r--r--  1 0        0          111478 Oct 20  1989 tcp-ip-intro.ps
  1703.  
  1704.     Also keep in mind that NET-2 _is_ developing very rapidly, it's
  1705.     one of the newest additions to the Linux kernel. Thus, all of the
  1706.     bugs haven't been worked out yet, so there may be some problems.
  1707.     However, a good rule of thumb is that if you were able to get TCP/IP
  1708.     working under kernels before 0.99.pl10, you should be able to get it
  1709.     working under NET-2 as well. There are still some issues dealing with
  1710.     performance to be fixed, but overall the system works. And, as with
  1711.     everything in Linux development, time will cure what ails NET-2. 
  1712.     If it's absolutely unusable to you, go back to an earlier kernel 
  1713.     version, and wait until things develop further. The code is still
  1714.     fairly new.
  1715.  
  1716. 9.    Common Problems and Solutions.
  1717.  
  1718.     Now that the NET-2 HOWTO has been out for a while, I've been
  1719.     able to gather some common problems (and answers!). Here are
  1720.     some things which I have learned from hearing from readers.
  1721.     If you run into a problem which should be included here,
  1722.     please send it along (even if you have the solution!).
  1723.  
  1724.     QUESTION: How do I know what version of NET software I am running?
  1725.  
  1726.     ANSWER: In the kernel messages when you boot your machine, you should
  1727.     see a line that describes your networking code. For example, mine
  1728.     looks like:
  1729.  
  1730.     Linux version 0.99.14l+NET-2EB4 (root@albert.vk2ktj.ampr.org.)
  1731.  
  1732.     This line, not terribly obviously, tells you that I am running
  1733.     NET-2E, Beta 4.
  1734.     
  1735.     QUESTION: When I try to use the network, or use SLIP, I get the
  1736.               error message "Network not reachable". What should I do?
  1737.  
  1738.  
  1739.     ANSWER: This message means that a machine somewhere in the path did
  1740.     not have a route to the destination network. Until you can demonstrate
  1741.     otherwise, it is the courteous thing to do, assume it is your
  1742.     machine. This is usually an indication that either your ifconfig or    
  1743.     route commands are in some way wrong. You can look at the status of
  1744.     your ifconfig by using the command "ifconfig" by itself. This should
  1745.     tell you what NET-2 thinks your IP address, netmask, etc. are.
  1746.     You can use the command "route" by itself to get routing information.
  1747.     This will tell you what routes you have set up and what gateways
  1748.     (if any).
  1749.  
  1750.     The best way to test a SLIP or network connection is to use "ping"
  1751.     with IP addresses only. If you use hostnames, as in "ping loomer",
  1752.     if some part of name lookup isn't working you'll have trouble.
  1753.     To test just the network, NOT name lookup, use only IP addresses,
  1754.     as in "ping 128.253.154.32".
  1755.  
  1756.     For SLIP connections the best thing to do is to ping your
  1757.     SLIP server. If nothing comes back, then something is wrong with your
  1758.     slip port configuration, double check all of the steps detailed above.
  1759.     Try using "dip -v" which will print debugging information while DIP
  1760.     is dialing the server.
  1761.  
  1762.     If you get a response from your slip server, but not from anywhere else,
  1763.     then you are probably missing your default route, you may need to use
  1764.     the commands:
  1765.  
  1766.         # route del <your slip server address>
  1767.         # route add default gw <your slip server address>
  1768.  
  1769.     to get SLIP talking to the server. Once you can talk to the
  1770.     server, everything SHOULD work (if your server is set up correctly!).
  1771.  
  1772.     For Ethernet connections, try pinging your gateway. If you can talk
  1773.     to your gateway, you should be able to talk to the outside world.
  1774.     You may need more than one route (that is, more than one gateway).
  1775.     For example, some universities use one gateway for on-campus
  1776.     networks and another for off-campus networks. 
  1777.  
  1778.     Either way, try pinging addresses on your local network, and remote
  1779.     addresses. If you can ping all addresses ok remote to your network,
  1780.     and some on your local network, but not others on your local network,
  1781.     then check your netmask setting.
  1782.  
  1783.     If the "network not reachable" message means that you can't
  1784.     talk to your gateway. This can be due to several things:
  1785.  
  1786.         a) Wrong route or ifconfig commands
  1787.         b) Ethernet card problems (see below)
  1788.         c) You didn't compile the kernel correctly (see below).
  1789.         d) There is in fact some sort of network failure elsewhere.
  1790.  
  1791.  
  1792.     QUESTION: I keep getting the error "eth0: transmit timed out".
  1793.               What does this mean?
  1794.  
  1795.     ANSWER: This usually means that your Ethernet cable is unplugged,
  1796.     or that the setup parameters for your card (I/O address, IRQ, etc.)
  1797.     are not set correctly. Check the messages at boot time and make
  1798.     sure that your card is recognized with the correct Ethernet address.
  1799.     If it is, check that there is no conflict with any other hardware
  1800.     in your machine, eg you might have a soundblaster sharing the same
  1801.     IRQ or i/o control port.
  1802.  
  1803.     QUESTION: I get errors "check Ethernet cable" when using the network.
  1804.  
  1805.     ANSWER: You probably have your Ethernet card configured incorrectly.
  1806.     For Etherlink cards, in the file /usr/src/linux/driver/net/CONFIG,
  1807.     change the line
  1808.         EL_OPTS     = -UEL2_AUI
  1809.     to
  1810.         EL_OPTS        = -DEL2_AUI
  1811.  
  1812.     This tells the card to use the AUI cable interface. 
  1813.     Just make sure that all of the options for your card are set
  1814.     correctly in the CONFIG file, and rebuild your kernel.
  1815.  
  1816.  
  1817.     QUESTION: When I use NET-2, I get a "General protection" error
  1818.               or a panic from the kernel. How can I fix this?
  1819.  
  1820.     ANSWER: Remember that the NET-2 code is still on the buggy side, 
  1821.     just because it's in mid-development. If you get a kernel panic
  1822.     while using NET-2, write down the EIP address (and the other
  1823.     information given in the panic message). The EIP is the address
  1824.     where the kernel paniced, usually of the form 0008:xxxxxxxx
  1825.     where "0008" is the segment descriptor for the kernel text, and
  1826.     "xxxxxxxx" is the offset into that segment (80386 programmers will
  1827.     know what this means).
  1828.  
  1829.     Use the command 
  1830.         nm /usr/src/linux/tools/system | sort -n
  1831.     or 
  1832.         nm /usr/src/linux/tools/zSystem | sort -n
  1833.  
  1834.     depending on whether or not you use a compressed kernel (zImage).
  1835.     This will print a listing of all symbols in the kernel text, 
  1836.     simply scan down the list and look for the function that contains
  1837.     the EIP address in the kernel dump. There's the culprit.
  1838.  
  1839.     However, in some cases the EIP can be misleading; the kernel
  1840.     may panic at a place which is complete irrelevant to where the
  1841.     actual problem occurred. However, it is a good starting place;
  1842.     first, locate the function which contains the EIP address, and
  1843.     then check out the kernel code to see what might be wrong.
  1844.  
  1845.     Keep in mind that this will only work if you compile your own
  1846.     kernel and have the "system" file associated with it. 
  1847.  
  1848.     
  1849.     QUESTION: How can I hang up the phone line when I'm done using
  1850.               SLIP?
  1851.  
  1852.     ANSWER: If you use dip to dial out on the SLIP line, just
  1853.     "kill -9" the dip process itself (dip won't die unless you kill
  1854.     it with SIGKILL or some other signal). When dip dies, the line
  1855.     should hang up. DIPs behaviour is being modified so that it will
  1856.     be more sociable and die when it is supposed to. If you are using
  1857.     the new dip, then 'dip -k' will kill any copy of dip that you
  1858.     have running, and hang up the line as well.
  1859.  
  1860.     If you don't use dip to dial out, either instruct your dialing
  1861.     program to hang up the line, or kill the dialing process.
  1862.  
  1863.  
  1864.     QUESTION: dip doesn't work. How do I make it work ?
  1865.  
  1866.     ANSWER: Check that the file permissions of dip are 6750, that is
  1867.     'chmod 6750 dip'. Check also that dip is owned by root:
  1868.     'chown root:dip dip'
  1869.  
  1870.  
  1871.     QUESTION: With SLIP, I get a connection open, but no data flows.
  1872.  
  1873.     ANSWER: This could be a number of things. First, check your routes
  1874.     and be sure that the gateway is set correctly. Attempt to ping
  1875.     your gateway; if you can't, then something is wrong with the routes.
  1876.     
  1877.     Another problem could be that your system and the SLIP server 
  1878.     disagree about header compression. With 0.99.pl11 and above, 
  1879.     SLIP automatically compresses packet headers. To turn off header
  1880.     compression, check the SL_COMPRESS option in the CONFIG file.
  1881.     In pl14 there will be supplied a 'setencap' command to allow you
  1882.     to configure compression.
  1883.  
  1884.  
  1885.     QUESTION: With SLIP, I get a connection, but after sending a small
  1886.               amount of data, the connection hangs.
  1887.  
  1888.     ANSWER: Probably an MTU problem. The MTU is the maximum packet
  1889.     size available for the network. For SLIP, your MTU is set in
  1890.     your dip dialing script with the "MTU" command. The default value
  1891.     is 1500, which means that the system can send packets of up to
  1892.     1500 bytes in size. However, some SLIP servers (Berkeley SLIP,
  1893.     for example), use a smaller MTU (around 1006).
  1894.  
  1895.     Another thing to check if you are having erratic SLIP problems is
  1896.     flow control. You need to use hardware (RTS/CTS) flow control
  1897.     on your modem, and your modem and your computer must agree. XON/XOFF
  1898.     flow control is not practical for SLIP.
  1899.  
  1900. 9.1    Not so common problems and solutions (Mostly NFS).
  1901.  
  1902.     QUESTION: How do I use my existing Novell fileserver with my
  1903.               Linux machine ?
  1904.  
  1905.     ANSWER: If you have the Novell NFS Daemon code then it is easy, just
  1906.     NFS mount the Novell volume that you wish to use. If you don't, and
  1907.     you are really desperate to be able to do this, and you have a spare
  1908.     pc machine laying about, you are in luck. Here is what you do:
  1909.  
  1910.     You configure the spare machine as a normal Novell workstation,
  1911.     mapping the appropriate Fileserver directories to virtual drives
  1912.     as you so desire. You then grab a copy of SOSS (Son Of Stans own
  1913.     Server) from your nearest ftp site, and run it on the same workstation.
  1914.     SOSS is an NFS server that will happily run on just about any pc.
  1915.     This will allow you to NFS export the Novell network drives. It has
  1916.     caveats in that it will not perform as well as directly mounting
  1917.     the Novell fileserver, that it requires another machine, and that it
  1918.     will generate roughly twice as much network traffic, but it will work.
  1919.  
  1920.         Stan's Own Server (NFS server).
  1921.  
  1922.             spdcc.com:pub/sos/soss.zoo
  1923.             spdcc.com:pub/sos/sossexe.zoo
  1924.  
  1925.         A version "couple of bugs fixed: IP numbers and subdirectories
  1926.         with extensions)" is available from:
  1927.             hilbert.wharton.upenn.edu:/pub/tcpip/soss.zip
  1928.  
  1929.     QUESTION: Files get corrupted when using NFS over wider area networks
  1930.               or SLIP, why ? How do I stop it ?
  1931.  
  1932.     ANSWER: Certain vendors (Sun primarily) shipped many machines running
  1933.     NFS without UDP checksums. Great on ethernet, suicide otherwise. UDP
  1934.     checksums can be enabled on most file servers. Linux has it enabled by
  1935.     default from pl13 onwards - but both ends need to have it enabled...
  1936.  
  1937.     QUESTION: Why are my NFS files all read only ?
  1938.  
  1939.     ANSWER: The Linux NFS server defaults to read only. RTFM the 'exports'
  1940.     and nfsd manual pages. With non Linux servers you may also need to
  1941.     alter /etc/exports 
  1942.  
  1943.     QUESTION: I mount from a linux nfs server and while ls works I can't
  1944.               read or write files. How do I fix this ? 
  1945.  
  1946.     ANSWER: You must mount a Linux filestore with rsize=1024,wsize=1024
  1947.     (or 2048 if you really want - 1024 is a better choice).
  1948.  
  1949.     QUESTION: I mount from a linux nfs server with a blocksize of between
  1950.               3500-4000 and it crashes the Linux box regularly, why ?
  1951.  
  1952.     ANSWER: This is a known problem that is being worked on, refer to
  1953.     previous question. Don't you hate answers like that ? :)
  1954.  
  1955.     QUESTION: Can Linux do NFS over TCP ?
  1956.  
  1957.     ANSWER: No. To do this would require someone to spend the time to
  1958.     update the rpc code to add rpc stream record marking. It should work
  1959.     then.
  1960.  
  1961.     QUESTION: Why do I get loads of strange errors trying to mount a
  1962.               machine from a Linux box. 
  1963.  
  1964.     ANSWER: This is possibly related to a restriction imposed by older
  1965.     NFS servers. Make sure your users are in 8 groups or less.
  1966.  
  1967.     QUESTION: Why are my Linux NFS clients very slow when writing to Sun
  1968.               & BSD systems ?
  1969.  
  1970.     ANSWER: NFS writes are normally synchronous, meaning that all file-
  1971.     -system changes occur in the order they transmitted, this means that
  1972.     if before NFS will allow you to write any more data, any previous
  1973.     write must have already completed, (you can disable this if you don't
  1974.     mind risking losing data). Worse still, BSD derived kernels, this
  1975.     includes Sun systems, tend to be unable to work in small blocks. Thus
  1976.     when you write 4K of data from a Linux box in the 1K packets it uses,
  1977.     BSD does this:
  1978.  
  1979.         read 4K page
  1980.         alter 1K
  1981.         write 4K back to physical disk
  1982.         read 4K page
  1983.         alter 1K
  1984.         write 4K page back to physical disk
  1985.         etc..
  1986.     
  1987.     Better systems don't have this problem. The Linux client is however
  1988.     quite slow anyway.
  1989.  
  1990.     QUESTION: I've heard NFS is not secure is this true ?
  1991.  
  1992.     ANSWER: Yes, totally. Running NFS in an uncontrolled environment is
  1993.     rather like leaving your front door open, painting 'On holiday' on
  1994.     your house and posting maps to every known criminal...
  1995.     In a fairly secure environment or when you can recover data from stupid
  1996.     misuse its pretty much OK. The worst someone can easily do is alter all
  1997.     the files on an NFS mounted disk, and/or crash the machine. So long as
  1998.     you don't mount your system files writable you should be mostly safe.
  1999.  
  2000.     QUESTION: I occasionally mount from lots of different places, do I have
  2001.               to mount them all each time I boot ?
  2002.  
  2003.     ANSWER: No you can use the automounter to mount disks as you access
  2004.             them.
  2005.  
  2006.     QUESTION: How do I stop things hanging when a server goes down ?
  2007.  
  2008.     ANSWER: There are three main NFS behaviours:
  2009.  
  2010.         soft: Your NFS client will report an error to the process
  2011.               concerned if an NFS server doesn't answer after a few
  2012.               retries. Most software handles this well - but not all.
  2013.     
  2014.         hard: Your NFS client will try forever unless killed off.
  2015.               Operations will be restarted when the NFS server
  2016.               recovers or reboots.
  2017.     
  2018.         hard,intr: As hard but ^C will also stop the NFS retrying. In
  2019.               a few cases, notably nfs mounted /usr/spool/mail disks,
  2020.               this doesn't help as the shell will be ignoring ^C when
  2021.               it checks you have mail.
  2022.  
  2023.     If you intend to leave your machine unattended, then choosing the
  2024.     'soft' option is probably best, because while it might cause some
  2025.     problems to an application running, it won't halt your whole machine
  2026.     if a server that it is attached to goes down. If your machine will
  2027.     always have a human operator available, then the 'hard,intr' option
  2028.     might be best. The hard option would be best suited to you if you can
  2029.     afford to wait, and don't want the process writing to the server
  2030.     interrupted at all.
  2031.  
  2032.     QUESTION: Can I use two slip interfaces ?
  2033.  
  2034.     ANSWER: Yes. If you have, for example, three machines which you
  2035.     would like to interconnect, then you most certainly could use
  2036.     two slip interfaces on one machine and connect each of the other
  2037.     machines to it. Simply configure the second interface as you did
  2038.     the first. NOTE that the second interface will require a different
  2039.     IP address to the first. You may need to play with the routing a
  2040.     bit to get it to do what you want, but it should work.
  2041.  
  2042. 10.    Known bugs.
  2043.  
  2044.     There are several known bugs with the NET-2 software. Note that these
  2045.     may or may not be fixed with a newer version of the NET-2 code;
  2046.     therefore, I leave them here. 
  2047.     
  2048.     The bugs here are for NET-2d, found in kernels 0.99.pl10, pl11, 
  2049.     and pl12, and pl13, and pl14. NET-2e (currently in Beta), when
  2050.     released, may or may not have fixed these bugs. 
  2051.  
  2052.     * Bug with route guessing code. If you ifconfig the "lo"
  2053.       interface before the "eth0" interface in rc.inet1, whenever you
  2054.       add a route, it will be added to "lo" instead of "eth0". 
  2055.       (Simply use the "route" command by itself; it will display all
  2056.       of your routes. If your "default" route, which should be out
  2057.       on the ethernet, is for device "lo" instead of "eth0", then you're
  2058.       seeing this bug.) 
  2059.       
  2060.       This is just a problem with the route guessing code. Several
  2061.       things can fix it: 1) ifconfig/route on "eth0" before "lo" in
  2062.       rc.inet1; or, 2) Set your netmask to 255.0.0.0 (which is reported
  2063.       to work, but I can't guarantee it). This should be fixed in NET-2e.
  2064.  
  2065.     * Missing IP packet fragmentation. Packet fragmentation allows the
  2066.       various protocol layers to "chop up" packets into smaller packets
  2067.       if the MTU (maximum tranfer unit) of one network differs from
  2068.       another. NET-2e should contain packet fragmentation/defragmentation
  2069.       code, but NET-2d currently does not.
  2070.       This now only applies to kernel earlier than pl14+, as it is now
  2071.       supported.
  2072.  
  2073.     * Weak NFS support. There have been a number of success stories with
  2074.       NFS under Linux, however, not all of the support is there. For
  2075.       one thing, the current NFS buffer size is much smaller, and 
  2076.       therefore much slower, than other implementations of NFS.
  2077.  
  2078. 11.    Copyright Message. (We're not ogres, nor are we silly).
  2079.  
  2080.     The NET-2-HOWTO is copyright by Terry Dawson and Matt Welsh. A verbatim
  2081.     copy of this document may be reproduced and distributed in any medium,
  2082.     physical or electronic without permission of the authors. Translations
  2083.     are similarly permitted without express permission if such translations
  2084.     include a notice stating who performed the translation, and that it is
  2085.     a translation. Commercial redistribution is allowed and encouraged,
  2086.     however, the authors would like to be notified of any such
  2087.     distributions. 
  2088.  
  2089.     Short quotes may be used without prior consent by the authors.
  2090.     Derivative works and partial distributions of the NET-2-HOWTO must
  2091.     include either a verbatim copy of this file, or make a verbatim copy
  2092.     of this file available. If the latter is the case, a pointer to the
  2093.     verbatim copy must be stated at a clearly visible place.
  2094.  
  2095.     In short, we wish to promote dissemination of this information through
  2096.     as many channels as possible. However, we wish to retain copyright on
  2097.     this HOWTO document, and would like to be notified of any plans to
  2098.     redistribute it. Further we desire that ALL information provided in
  2099.     this HOWTO be disseminated.
  2100.  
  2101.     If you have any questions relating to the conditions of this copyright,
  2102.     please contact Matt Welsh, the Linux HOWTO coordinator, at:
  2103.     mdw@sunsite.unc.edu, or +1 607 256 7372.
  2104.  
  2105.  
  2106. 12.    Miscellaneous.
  2107.  
  2108.     I'm sure that I've missed something. This NET-2 HOWTO was thrown 
  2109.     together with the help of Matt Welsh, and Jeff Uphoff. Other major
  2110.     contributors have been Alan Cox, Fred van Kempen, and others just
  2111.     like yourself. Hopefully it will help you, and others out there, get
  2112.     networking under Linux. 
  2113.  
  2114.     Future plans for the NET-2 HOWTO include a section on setting up
  2115.     your own Linux LAN (with SLIP and/or Ethernet), adventures in
  2116.     routing, and the use of netstat and other network administration
  2117.     under Linux. For now, the information here should be more than 
  2118.     enough. :)
  2119.     
  2120.     If you have questions about setting up NET-2, feel free to mail me, or 
  2121.     if you have any corrections, additions, or errata for this NET-2 HOWTO, 
  2122.     send me any and all changes (cdiffs are nice, but I'm flexible). 
  2123.  
  2124.     Of course, thanks to Fred, Linus, Ross, Phil, Paul, Don, Alan,
  2125.     Matt, and everyone else who helped to develop the NET-2 code and work
  2126.     on previous versions of TCP/IP for Linux and the NET-FAQ. Finally,
  2127.     Linux has a complete implementation of TCP/IP. It may not be for
  2128.     everyone yet. But for those who have an itch they want to scratch,
  2129.     happy hacking, here it is.
  2130.  
  2131.     Cheers,
  2132.  
  2133.     Terry Dawson, (terryd@extro.ucc.su.oz.au)
  2134.  
  2135. 13.    Change History.
  2136.  
  2137.     Changes from 1.8:
  2138.     correction to broadcast address calculation, thanks Andr'as Salamon
  2139.     tcp/ip tutorials added thanks to Gilbert Callaghan
  2140.     These annotations at the suggestion of Andy Burgess
  2141.     Shadow password section updated - thanks Rick Sladkey
  2142.     added Slip Server section - thanks Fred
  2143.     added /etc/net/diphosts section - thanks Fred
  2144.     enhanced the netmask description a little
  2145.     Revamped for 0.99.14
  2146.     Added Index
  2147.  
  2148.     Changes from 1.9:
  2149.     Added change history.
  2150.     Corrected Archive header now that I understand what it is there for
  2151.       Thanks to _everyone_ who helped me understand :)
  2152.     Ammended loopback route details - thanks Jeffrey A. Kintscher.
  2153.     First attempt at enlarging the configuration section to cope with
  2154.       different networks and different distributions thanks
  2155.       Eric Christensen.
  2156.     Reinstated /dev/arp as a required device. Oops.
  2157.     Finally added resolv+(8) man page reference.
  2158.     Tried to clean the slip section a bit.
  2159.     Added leased line/cable slip link config using slattach.
  2160.     Corrected a minor PLIP stoopidity I inflicted that fortunately noone
  2161.       appears to have noticed.
  2162.     Ammended Slip Server config to run a script in lieu of 'dip -i'
  2163.     Fixed numerous tyops and mizpellinks (When will I not ?)
  2164.  
  2165.